| // Copyright 2015 Google LLC |
| // |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file or at |
| // https://developers.google.com/open-source/licenses/bsd |
| |
| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: deprecated_member_use_from_same_package |
| // ignore_for_file: doc_directive_unknown |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unintended_html_in_doc_comment |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| /// Kubernetes Engine API - v1 |
| /// |
| /// Builds and manages container-based applications, powered by the open source |
| /// Kubernetes technology. |
| /// |
| /// For more information, see <https://cloud.google.com/kubernetes-engine/docs/> |
| /// |
| /// Create an instance of [ContainerApi] to access these resources: |
| /// |
| /// - [ProjectsResource] |
| /// - [ProjectsAggregatedResource] |
| /// - [ProjectsAggregatedUsableSubnetworksResource] |
| /// - [ProjectsLocationsResource] |
| /// - [ProjectsLocationsClustersResource] |
| /// - [ProjectsLocationsClustersNodePoolsResource] |
| /// - [ProjectsLocationsClustersWellKnownResource] |
| /// - [ProjectsLocationsOperationsResource] |
| /// - [ProjectsZonesResource] |
| /// - [ProjectsZonesClustersResource] |
| /// - [ProjectsZonesClustersNodePoolsResource] |
| /// - [ProjectsZonesOperationsResource] |
| library; |
| |
| import 'dart:async' as async; |
| import 'dart:convert' as convert; |
| import 'dart:core' as core; |
| |
| import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| import 'package:http/http.dart' as http; |
| |
| import '../shared.dart'; |
| import '../src/user_agent.dart'; |
| |
| export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' |
| show ApiRequestError, DetailedApiRequestError; |
| |
| /// Builds and manages container-based applications, powered by the open source |
| /// Kubernetes technology. |
| class ContainerApi { |
| /// See, edit, configure, and delete your Google Cloud data and see the email |
| /// address for your Google Account. |
| static const cloudPlatformScope = |
| 'https://www.googleapis.com/auth/cloud-platform'; |
| |
| final commons.ApiRequester _requester; |
| |
| ProjectsResource get projects => ProjectsResource(_requester); |
| |
| ContainerApi( |
| http.Client client, { |
| core.String rootUrl = 'https://container.googleapis.com/', |
| core.String servicePath = '', |
| }) : _requester = commons.ApiRequester( |
| client, |
| rootUrl, |
| servicePath, |
| requestHeaders, |
| ); |
| } |
| |
| class ProjectsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsAggregatedResource get aggregated => |
| ProjectsAggregatedResource(_requester); |
| ProjectsLocationsResource get locations => |
| ProjectsLocationsResource(_requester); |
| ProjectsZonesResource get zones => ProjectsZonesResource(_requester); |
| |
| ProjectsResource(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class ProjectsAggregatedResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsAggregatedUsableSubnetworksResource get usableSubnetworks => |
| ProjectsAggregatedUsableSubnetworksResource(_requester); |
| |
| ProjectsAggregatedResource(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class ProjectsAggregatedUsableSubnetworksResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsAggregatedUsableSubnetworksResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Lists subnetworks that are usable for creating clusters in a project. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The parent project where subnetworks are usable. Specified in |
| /// the format `projects / * `. |
| /// Value must have pattern `^projects/\[^/\]+$`. |
| /// |
| /// [filter] - Filtering currently only supports equality on the |
| /// networkProjectId and must be in the form: |
| /// "networkProjectId=\[PROJECTID\]", where `networkProjectId` is the project |
| /// which owns the listed subnetworks. This defaults to the parent project ID. |
| /// |
| /// [pageSize] - The max number of results per page that should be returned. |
| /// If the number of available results is larger than `page_size`, a |
| /// `next_page_token` is returned which can be used to get the next page of |
| /// results in subsequent requests. Acceptable values are 0 to 500, inclusive. |
| /// (Default: 500) |
| /// |
| /// [pageToken] - Specifies a page token to use. Set this to the nextPageToken |
| /// returned by previous list requests to get the next page of results. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListUsableSubnetworksResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListUsableSubnetworksResponse> list( |
| core.String parent, { |
| core.String? filter, |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'filter': ?filter == null ? null : [filter], |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$parent') + |
| '/aggregated/usableSubnetworks'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListUsableSubnetworksResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class ProjectsLocationsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsClustersResource get clusters => |
| ProjectsLocationsClustersResource(_requester); |
| ProjectsLocationsOperationsResource get operations => |
| ProjectsLocationsOperationsResource(_requester); |
| |
| ProjectsLocationsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Returns configuration info about the Google Kubernetes Engine service. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project and location) of the server config to get, |
| /// specified in the format `projects / * /locations / * `. |
| /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) to return |
| /// operations for. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServerConfig]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ServerConfig> getServerConfig( |
| core.String name, { |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/serverConfig'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ServerConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class ProjectsLocationsClustersResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsClustersNodePoolsResource get nodePools => |
| ProjectsLocationsClustersNodePoolsResource(_requester); |
| ProjectsLocationsClustersWellKnownResource get wellKnown => |
| ProjectsLocationsClustersWellKnownResource(_requester); |
| |
| ProjectsLocationsClustersResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Checks the cluster compatibility with Autopilot mode, and returns a list |
| /// of compatibility issues. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to retrieve. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [CheckAutopilotCompatibilityResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<CheckAutopilotCompatibilityResponse> checkAutopilotCompatibility( |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$name') + ':checkAutopilotCompatibility'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return CheckAutopilotCompatibilityResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Completes master IP rotation. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster name) of the cluster to |
| /// complete IP rotation. Specified in the format `projects / * /locations / * |
| /// /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> completeIpRotation( |
| CompleteIPRotationRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':completeIpRotation'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Creates a cluster, consisting of the specified number and type of Google |
| /// Compute Engine instances. |
| /// |
| /// By default, the cluster is created in the project's |
| /// [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). |
| /// One firewall is added for the cluster. After cluster creation, the kubelet |
| /// creates routes for each node to allow the containers on that node to |
| /// communicate with all other instances in the cluster. Finally, an entry is |
| /// added to the project's global metadata indicating which CIDR range the |
| /// cluster is using. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The parent (project and location) where the cluster will be |
| /// created. Specified in the format `projects / * /locations / * `. |
| /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> create( |
| CreateClusterRequest request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/clusters'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Deletes the cluster, including the Kubernetes endpoint and all worker |
| /// nodes. |
| /// |
| /// Firewalls and routes that were configured during cluster creation are also |
| /// deleted. Other Google Compute Engine resources that might be in use by the |
| /// cluster, such as load balancer resources, are not deleted if they weren't |
| /// present when the cluster was initially created. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to delete. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to delete. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> delete( |
| core.String name, { |
| core.String? clusterId, |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'clusterId': ?clusterId == null ? null : [clusterId], |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'DELETE', |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Fetch upgrade information of a specific cluster. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name (project, location, cluster) of the cluster to |
| /// get. Specified in the format `projects / * /locations / * /clusters / * ` |
| /// or `projects / * /zones / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [version] - API request version that initiates this operation. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ClusterUpgradeInfo]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ClusterUpgradeInfo> fetchClusterUpgradeInfo( |
| core.String name, { |
| core.String? version, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'version': ?version == null ? null : [version], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$name') + ':fetchClusterUpgradeInfo'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ClusterUpgradeInfo.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Gets the details of a specific cluster. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to retrieve. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to retrieve. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Cluster]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Cluster> get( |
| core.String name, { |
| core.String? clusterId, |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'clusterId': ?clusterId == null ? null : [clusterId], |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Cluster.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets the public component of the cluster signing keys in JSON Web Key |
| /// format. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The cluster (project, location, cluster name) to get keys for. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [GetJSONWebKeysResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<GetJSONWebKeysResponse> getJwks( |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/jwks'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return GetJSONWebKeysResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Lists all clusters owned by a project in either the specified zone or all |
| /// zones. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The parent (project and location) where the clusters will be |
| /// listed. Specified in the format `projects / * /locations / * `. Location |
| /// "-" matches all zones and all regions. |
| /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides, or "-" for all zones. This field has been deprecated and |
| /// replaced by the parent field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListClustersResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListClustersResponse> list( |
| core.String parent, { |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/clusters'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListClustersResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Sets the addons for a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to set |
| /// addons. Specified in the format `projects / * /locations / * /clusters / * |
| /// `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setAddons( |
| SetAddonsConfigRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setAddons'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Enables or disables the ABAC authorization mechanism on a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster name) of the cluster to set |
| /// legacy abac. Specified in the format `projects / * /locations / * |
| /// /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setLegacyAbac( |
| SetLegacyAbacRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setLegacyAbac'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the locations for a specific cluster. |
| /// |
| /// Deprecated. Use |
| /// [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) |
| /// instead. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to set |
| /// locations. Specified in the format `projects / * /locations / * /clusters |
| /// / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| async.Future<Operation> setLocations( |
| SetLocationsRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setLocations'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the logging service for a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to set |
| /// logging. Specified in the format `projects / * /locations / * /clusters / |
| /// * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setLogging( |
| SetLoggingServiceRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setLogging'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the maintenance policy for a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster name) of the cluster to set |
| /// maintenance policy. Specified in the format `projects / * /locations / * |
| /// /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setMaintenancePolicy( |
| SetMaintenancePolicyRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setMaintenancePolicy'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets master auth materials. |
| /// |
| /// Currently supports changing the admin password or a specific cluster, |
| /// either via password generation or explicitly setting the password. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to set auth. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setMasterAuth( |
| SetMasterAuthRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setMasterAuth'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the monitoring service for a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to set |
| /// monitoring. Specified in the format `projects / * /locations / * /clusters |
| /// / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setMonitoring( |
| SetMonitoringServiceRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setMonitoring'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Enables or disables Network Policy for a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster name) of the cluster to set |
| /// networking policy. Specified in the format `projects / * /locations / * |
| /// /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setNetworkPolicy( |
| SetNetworkPolicyRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setNetworkPolicy'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets labels on a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster name) of the cluster to set |
| /// labels. Specified in the format `projects / * /locations / * /clusters / * |
| /// `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setResourceLabels( |
| SetLabelsRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setResourceLabels'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Starts master IP rotation. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster name) of the cluster to |
| /// start IP rotation. Specified in the format `projects / * /locations / * |
| /// /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> startIpRotation( |
| StartIPRotationRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':startIpRotation'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates the settings of a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to update. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> update( |
| UpdateClusterRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'PUT', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates the master for a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to update. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> updateMaster( |
| UpdateMasterRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':updateMaster'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class ProjectsLocationsClustersNodePoolsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsClustersNodePoolsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// CompleteNodePoolUpgrade will signal an on-going node pool upgrade to |
| /// complete. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster, node pool id) of the node |
| /// pool to complete upgrade. Specified in the format `projects / * /locations |
| /// / * /clusters / * /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> completeUpgrade( |
| CompleteNodePoolUpgradeRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':completeUpgrade'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Empty.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Creates a node pool for a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The parent (project, location, cluster name) where the node |
| /// pool will be created. Specified in the format `projects / * /locations / * |
| /// /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> create( |
| CreateNodePoolRequest request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/nodePools'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Deletes a node pool from a cluster. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster, node pool id) of the node |
| /// pool to delete. Specified in the format `projects / * /locations / * |
| /// /clusters / * /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool to delete. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> delete( |
| core.String name, { |
| core.String? clusterId, |
| core.String? nodePoolId, |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'clusterId': ?clusterId == null ? null : [clusterId], |
| 'nodePoolId': ?nodePoolId == null ? null : [nodePoolId], |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'DELETE', |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Fetch upgrade information of a specific node pool. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name (project, location, cluster, node pool) of the |
| /// node pool to get. Specified in the format `projects / * /locations / * |
| /// /clusters / * /nodePools / * ` or `projects / * /zones / * /clusters / * |
| /// /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [version] - API request version that initiates this operation. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [NodePoolUpgradeInfo]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<NodePoolUpgradeInfo> fetchNodePoolUpgradeInfo( |
| core.String name, { |
| core.String? version, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'version': ?version == null ? null : [version], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$name') + ':fetchNodePoolUpgradeInfo'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return NodePoolUpgradeInfo.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Retrieves the requested node pool. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster, node pool id) of the node |
| /// pool to get. Specified in the format `projects / * /locations / * |
| /// /clusters / * /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [NodePool]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<NodePool> get( |
| core.String name, { |
| core.String? clusterId, |
| core.String? nodePoolId, |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'clusterId': ?clusterId == null ? null : [clusterId], |
| 'nodePoolId': ?nodePoolId == null ? null : [nodePoolId], |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return NodePool.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists the node pools for a cluster. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The parent (project, location, cluster name) where the node |
| /// pools will be listed. Specified in the format `projects / * /locations / * |
| /// /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the parent field. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the parent |
| /// field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListNodePoolsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListNodePoolsResponse> list( |
| core.String parent, { |
| core.String? clusterId, |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'clusterId': ?clusterId == null ? null : [clusterId], |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/nodePools'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListNodePoolsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Rolls back a previously Aborted or Failed NodePool upgrade. |
| /// |
| /// This makes no changes if the last upgrade successfully completed. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster, node pool id) of the node |
| /// poll to rollback upgrade. Specified in the format `projects / * /locations |
| /// / * /clusters / * /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> rollback( |
| RollbackNodePoolUpgradeRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':rollback'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the autoscaling settings for the specified node pool. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster, node pool) of the node pool |
| /// to set autoscaler settings. Specified in the format `projects / * |
| /// /locations / * /clusters / * /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setAutoscaling( |
| SetNodePoolAutoscalingRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setAutoscaling'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the NodeManagement options for a node pool. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster, node pool id) of the node |
| /// pool to set management properties. Specified in the format `projects / * |
| /// /locations / * /clusters / * /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setManagement( |
| SetNodePoolManagementRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setManagement'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the size for a specific node pool. |
| /// |
| /// The new size will be used for all replicas, including future replicas |
| /// created by modifying NodePool.locations. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster, node pool id) of the node |
| /// pool to set size. Specified in the format `projects / * /locations / * |
| /// /clusters / * /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setSize( |
| SetNodePoolSizeRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':setSize'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates the version and/or image type for the specified node pool. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, cluster, node pool) of the node pool |
| /// to update. Specified in the format `projects / * /locations / * /clusters |
| /// / * /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> update( |
| UpdateNodePoolRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'PUT', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class ProjectsLocationsClustersWellKnownResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsClustersWellKnownResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Gets the OIDC discovery document for the cluster. |
| /// |
| /// See the |
| /// [OpenID Connect Discovery 1.0 specification](https://openid.net/specs/openid-connect-discovery-1_0.html) |
| /// for details. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The cluster (project, location, cluster name) to get the |
| /// discovery document for. Specified in the format `projects / * /locations / |
| /// * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [GetOpenIDConfigResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<GetOpenIDConfigResponse> getOpenidConfiguration( |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$parent') + |
| '/.well-known/openid-configuration'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return GetOpenIDConfigResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class ProjectsLocationsOperationsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsOperationsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Cancels the specified operation. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, operation id) of the operation to |
| /// cancel. Specified in the format `projects / * /locations / * /operations / |
| /// * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> cancel( |
| CancelOperationRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':cancel'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Empty.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets the specified operation. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name (project, location, operation id) of the operation to |
| /// get. Specified in the format `projects / * /locations / * /operations / * |
| /// `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. |
| /// |
| /// [operationId] - Deprecated. The server-assigned `name` of the operation. |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> get( |
| core.String name, { |
| core.String? operationId, |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'operationId': ?operationId == null ? null : [operationId], |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists all operations in a project in a specific zone or all zones. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The parent (project and location) where the operations will be |
| /// listed. Specified in the format `projects / * /locations / * `. Location |
| /// "-" matches all zones and all regions. |
| /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) to return |
| /// operations for, or `-` for all zones. This field has been deprecated and |
| /// replaced by the parent field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListOperationsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListOperationsResponse> list( |
| core.String parent, { |
| core.String? projectId, |
| core.String? zone, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'projectId': ?projectId == null ? null : [projectId], |
| 'zone': ?zone == null ? null : [zone], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/operations'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListOperationsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class ProjectsZonesResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsZonesClustersResource get clusters => |
| ProjectsZonesClustersResource(_requester); |
| ProjectsZonesOperationsResource get operations => |
| ProjectsZonesOperationsResource(_requester); |
| |
| ProjectsZonesResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Returns configuration info about the Google Kubernetes Engine service. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) to return |
| /// operations for. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [name] - The name (project and location) of the server config to get, |
| /// specified in the format `projects / * /locations / * `. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ServerConfig]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ServerConfig> getServerconfig( |
| core.String projectId, |
| core.String zone, { |
| core.String? name, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'name': ?name == null ? null : [name], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/serverconfig'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ServerConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class ProjectsZonesClustersResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsZonesClustersNodePoolsResource get nodePools => |
| ProjectsZonesClustersNodePoolsResource(_requester); |
| |
| ProjectsZonesClustersResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Sets the addons for a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> addons( |
| SetAddonsConfigRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/addons'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Completes master IP rotation. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> completeIpRotation( |
| CompleteIPRotationRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| ':completeIpRotation'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Creates a cluster, consisting of the specified number and type of Google |
| /// Compute Engine instances. |
| /// |
| /// By default, the cluster is created in the project's |
| /// [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). |
| /// One firewall is added for the cluster. After cluster creation, the kubelet |
| /// creates routes for each node to allow the containers on that node to |
| /// communicate with all other instances in the cluster. Finally, an entry is |
| /// added to the project's global metadata indicating which CIDR range the |
| /// cluster is using. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the parent |
| /// field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> create( |
| CreateClusterRequest request, |
| core.String projectId, |
| core.String zone, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Deletes the cluster, including the Kubernetes endpoint and all worker |
| /// nodes. |
| /// |
| /// Firewalls and routes that were configured during cluster creation are also |
| /// deleted. Other Google Compute Engine resources that might be in use by the |
| /// cluster, such as load balancer resources, are not deleted if they weren't |
| /// present when the cluster was initially created. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to delete. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to delete. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> delete( |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? name, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'name': ?name == null ? null : [name], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'DELETE', |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Fetch upgrade information of a specific cluster. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name (project, location, cluster) of the cluster to |
| /// get. Specified in the format `projects / * /locations / * /clusters / * ` |
| /// or `projects / * /zones / * /clusters / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/zones/\[^/\]+/clusters/\[^/\]+$`. |
| /// |
| /// [version] - API request version that initiates this operation. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ClusterUpgradeInfo]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ClusterUpgradeInfo> fetchClusterUpgradeInfo( |
| core.String name, { |
| core.String? version, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'version': ?version == null ? null : [version], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$name') + ':fetchClusterUpgradeInfo'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ClusterUpgradeInfo.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Gets the details of a specific cluster. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to retrieve. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [name] - The name (project, location, cluster) of the cluster to retrieve. |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Cluster]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Cluster> get( |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? name, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'name': ?name == null ? null : [name], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Cluster.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Enables or disables the ABAC authorization mechanism on a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to update. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> legacyAbac( |
| SetLegacyAbacRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/legacyAbac'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists all clusters owned by a project in either the specified zone or all |
| /// zones. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides, or "-" for all zones. This field has been deprecated and |
| /// replaced by the parent field. |
| /// |
| /// [parent] - The parent (project and location) where the clusters will be |
| /// listed. Specified in the format `projects / * /locations / * `. Location |
| /// "-" matches all zones and all regions. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListClustersResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListClustersResponse> list( |
| core.String projectId, |
| core.String zone, { |
| core.String? parent, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'parent': ?parent == null ? null : [parent], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListClustersResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Sets the locations for a specific cluster. |
| /// |
| /// Deprecated. Use |
| /// [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) |
| /// instead. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| async.Future<Operation> locations( |
| SetLocationsRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/locations'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the logging service for a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> logging( |
| SetLoggingServiceRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/logging'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates the master for a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> master( |
| UpdateMasterRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/master'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the monitoring service for a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> monitoring( |
| SetMonitoringServiceRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/monitoring'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets labels on a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> resourceLabels( |
| SetLabelsRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/resourceLabels'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the maintenance policy for a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Required. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// [zone] - Required. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// [clusterId] - Required. The name of the cluster to update. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setMaintenancePolicy( |
| SetMaintenancePolicyRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| ':setMaintenancePolicy'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets master auth materials. |
| /// |
| /// Currently supports changing the admin password or a specific cluster, |
| /// either via password generation or explicitly setting the password. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setMasterAuth( |
| SetMasterAuthRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| ':setMasterAuth'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Enables or disables Network Policy for a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setNetworkPolicy( |
| SetNetworkPolicyRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| ':setNetworkPolicy'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Starts master IP rotation. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> startIpRotation( |
| StartIPRotationRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| ':startIpRotation'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates the settings of a specific cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> update( |
| UpdateClusterRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'PUT', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class ProjectsZonesClustersNodePoolsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsZonesClustersNodePoolsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Sets the autoscaling settings for the specified node pool. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool to upgrade. This |
| /// field has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> autoscaling( |
| SetNodePoolAutoscalingRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, |
| core.String nodePoolId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools/' + |
| commons.escapeVariable('$nodePoolId') + |
| '/autoscaling'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Creates a node pool for a cluster. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the parent |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the parent field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> create( |
| CreateNodePoolRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Deletes a node pool from a cluster. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool to delete. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [name] - The name (project, location, cluster, node pool id) of the node |
| /// pool to delete. Specified in the format `projects / * /locations / * |
| /// /clusters / * /nodePools / * `. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> delete( |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, |
| core.String nodePoolId, { |
| core.String? name, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'name': ?name == null ? null : [name], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools/' + |
| commons.escapeVariable('$nodePoolId'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'DELETE', |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Fetch upgrade information of a specific node pool. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name (project, location, cluster, node pool) of the |
| /// node pool to get. Specified in the format `projects / * /locations / * |
| /// /clusters / * /nodePools / * ` or `projects / * /zones / * /clusters / * |
| /// /nodePools / * `. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/zones/\[^/\]+/clusters/\[^/\]+/nodePools/\[^/\]+$`. |
| /// |
| /// [version] - API request version that initiates this operation. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [NodePoolUpgradeInfo]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<NodePoolUpgradeInfo> fetchNodePoolUpgradeInfo( |
| core.String name, { |
| core.String? version, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'version': ?version == null ? null : [version], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$name') + ':fetchNodePoolUpgradeInfo'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return NodePoolUpgradeInfo.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Retrieves the requested node pool. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool. This field has been |
| /// deprecated and replaced by the name field. |
| /// |
| /// [name] - The name (project, location, cluster, node pool id) of the node |
| /// pool to get. Specified in the format `projects / * /locations / * |
| /// /clusters / * /nodePools / * `. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [NodePool]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<NodePool> get( |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, |
| core.String nodePoolId, { |
| core.String? name, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'name': ?name == null ? null : [name], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools/' + |
| commons.escapeVariable('$nodePoolId'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return NodePool.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists the node pools for a cluster. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the parent |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster. This field has been |
| /// deprecated and replaced by the parent field. |
| /// |
| /// [parent] - The parent (project, location, cluster name) where the node |
| /// pools will be listed. Specified in the format `projects / * /locations / * |
| /// /clusters / * `. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListNodePoolsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListNodePoolsResponse> list( |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, { |
| core.String? parent, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'parent': ?parent == null ? null : [parent], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListNodePoolsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Rolls back a previously Aborted or Failed NodePool upgrade. |
| /// |
| /// This makes no changes if the last upgrade successfully completed. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to rollback. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool to rollback. This |
| /// field has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> rollback( |
| RollbackNodePoolUpgradeRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, |
| core.String nodePoolId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools/' + |
| commons.escapeVariable('$nodePoolId') + |
| ':rollback'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the NodeManagement options for a node pool. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to update. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool to update. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setManagement( |
| SetNodePoolManagementRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, |
| core.String nodePoolId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools/' + |
| commons.escapeVariable('$nodePoolId') + |
| '/setManagement'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the size for a specific node pool. |
| /// |
| /// The new size will be used for all replicas, including future replicas |
| /// created by modifying NodePool.locations. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to update. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool to update. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> setSize( |
| SetNodePoolSizeRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, |
| core.String nodePoolId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools/' + |
| commons.escapeVariable('$nodePoolId') + |
| '/setSize'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates the version and/or image type for the specified node pool. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [clusterId] - Deprecated. The name of the cluster to upgrade. This field |
| /// has been deprecated and replaced by the name field. |
| /// |
| /// [nodePoolId] - Deprecated. The name of the node pool to upgrade. This |
| /// field has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> update( |
| UpdateNodePoolRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String clusterId, |
| core.String nodePoolId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/clusters/' + |
| commons.escapeVariable('$clusterId') + |
| '/nodePools/' + |
| commons.escapeVariable('$nodePoolId') + |
| '/update'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class ProjectsZonesOperationsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsZonesOperationsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Cancels the specified operation. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// operation resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [operationId] - Deprecated. The server-assigned `name` of the operation. |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> cancel( |
| CancelOperationRequest request, |
| core.String projectId, |
| core.String zone, |
| core.String operationId, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/operations/' + |
| commons.escapeVariable('$operationId') + |
| ':cancel'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Empty.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets the specified operation. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. This field has been deprecated and replaced by the name |
| /// field. |
| /// |
| /// [operationId] - Deprecated. The server-assigned `name` of the operation. |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// [name] - The name (project, location, operation id) of the operation to |
| /// get. Specified in the format `projects / * /locations / * /operations / * |
| /// `. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> get( |
| core.String projectId, |
| core.String zone, |
| core.String operationId, { |
| core.String? name, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'name': ?name == null ? null : [name], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/operations/' + |
| commons.escapeVariable('$operationId'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists all operations in a project in a specific zone or all zones. |
| /// |
| /// Request parameters: |
| /// |
| /// [projectId] - Deprecated. The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// [zone] - Deprecated. The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) to return |
| /// operations for, or `-` for all zones. This field has been deprecated and |
| /// replaced by the parent field. |
| /// |
| /// [parent] - The parent (project and location) where the operations will be |
| /// listed. Specified in the format `projects / * /locations / * `. Location |
| /// "-" matches all zones and all regions. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListOperationsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListOperationsResponse> list( |
| core.String projectId, |
| core.String zone, { |
| core.String? parent, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'parent': ?parent == null ? null : [parent], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/projects/' + |
| commons.escapeVariable('$projectId') + |
| '/zones/' + |
| commons.escapeVariable('$zone') + |
| '/operations'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListOperationsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| /// AcceleratorConfig represents a Hardware Accelerator request. |
| class AcceleratorConfig { |
| /// The number of the accelerator cards exposed to an instance. |
| core.String? acceleratorCount; |
| |
| /// The accelerator type resource name. |
| /// |
| /// List of supported accelerators |
| /// [here](https://cloud.google.com/compute/docs/gpus) |
| core.String? acceleratorType; |
| |
| /// The configuration for auto installation of GPU driver. |
| GPUDriverInstallationConfig? gpuDriverInstallationConfig; |
| |
| /// Size of partitions to create on the GPU. |
| /// |
| /// Valid values are described in the NVIDIA |
| /// [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning). |
| core.String? gpuPartitionSize; |
| |
| /// The configuration for GPU sharing options. |
| GPUSharingConfig? gpuSharingConfig; |
| |
| AcceleratorConfig({ |
| this.acceleratorCount, |
| this.acceleratorType, |
| this.gpuDriverInstallationConfig, |
| this.gpuPartitionSize, |
| this.gpuSharingConfig, |
| }); |
| |
| AcceleratorConfig.fromJson(core.Map json_) |
| : this( |
| acceleratorCount: json_['acceleratorCount'] as core.String?, |
| acceleratorType: json_['acceleratorType'] as core.String?, |
| gpuDriverInstallationConfig: |
| json_.containsKey('gpuDriverInstallationConfig') |
| ? GPUDriverInstallationConfig.fromJson( |
| json_['gpuDriverInstallationConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gpuPartitionSize: json_['gpuPartitionSize'] as core.String?, |
| gpuSharingConfig: json_.containsKey('gpuSharingConfig') |
| ? GPUSharingConfig.fromJson( |
| json_['gpuSharingConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final acceleratorCount = this.acceleratorCount; |
| final acceleratorType = this.acceleratorType; |
| final gpuDriverInstallationConfig = this.gpuDriverInstallationConfig; |
| final gpuPartitionSize = this.gpuPartitionSize; |
| final gpuSharingConfig = this.gpuSharingConfig; |
| return { |
| 'acceleratorCount': ?acceleratorCount, |
| 'acceleratorType': ?acceleratorType, |
| 'gpuDriverInstallationConfig': ?gpuDriverInstallationConfig, |
| 'gpuPartitionSize': ?gpuPartitionSize, |
| 'gpuSharingConfig': ?gpuSharingConfig, |
| }; |
| } |
| } |
| |
| /// AccurateTimeConfig contains configuration for the accurate time |
| /// synchronization feature. |
| class AccurateTimeConfig { |
| /// Enables enhanced time synchronization using PTP-KVM. |
| core.bool? enablePtpKvmTimeSync; |
| |
| AccurateTimeConfig({this.enablePtpKvmTimeSync}); |
| |
| AccurateTimeConfig.fromJson(core.Map json_) |
| : this(enablePtpKvmTimeSync: json_['enablePtpKvmTimeSync'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enablePtpKvmTimeSync = this.enablePtpKvmTimeSync; |
| return {'enablePtpKvmTimeSync': ?enablePtpKvmTimeSync}; |
| } |
| } |
| |
| /// AdditionalIPRangesConfig is the configuration for individual additional |
| /// subnetwork attached to the cluster |
| class AdditionalIPRangesConfig { |
| /// List of secondary ranges names within this subnetwork that can be used for |
| /// pod IPs. |
| /// |
| /// Example1: gke-pod-range1 Example2: gke-pod-range1,gke-pod-range2 |
| core.List<core.String>? podIpv4RangeNames; |
| |
| /// Draining status of the additional subnet. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : Not set, same as ACTIVE. |
| /// - "ACTIVE" : ACTIVE status indicates that the subnet is available for new |
| /// node pool creation. |
| /// - "DRAINING" : DRAINING status indicates that the subnet is not used for |
| /// new node pool creation. |
| core.String? status; |
| |
| /// Name of the subnetwork. |
| /// |
| /// This can be the full path of the subnetwork or just the name. Example1: |
| /// my-subnet Example2: |
| /// projects/gke-project/regions/us-central1/subnetworks/my-subnet |
| core.String? subnetwork; |
| |
| AdditionalIPRangesConfig({ |
| this.podIpv4RangeNames, |
| this.status, |
| this.subnetwork, |
| }); |
| |
| AdditionalIPRangesConfig.fromJson(core.Map json_) |
| : this( |
| podIpv4RangeNames: (json_['podIpv4RangeNames'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| status: json_['status'] as core.String?, |
| subnetwork: json_['subnetwork'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final podIpv4RangeNames = this.podIpv4RangeNames; |
| final status = this.status; |
| final subnetwork = this.subnetwork; |
| return { |
| 'podIpv4RangeNames': ?podIpv4RangeNames, |
| 'status': ?status, |
| 'subnetwork': ?subnetwork, |
| }; |
| } |
| } |
| |
| /// AdditionalNodeNetworkConfig is the configuration for additional node |
| /// networks within the NodeNetworkConfig message |
| class AdditionalNodeNetworkConfig { |
| /// Name of the VPC where the additional interface belongs |
| core.String? network; |
| |
| /// Name of the subnetwork where the additional interface belongs |
| core.String? subnetwork; |
| |
| AdditionalNodeNetworkConfig({this.network, this.subnetwork}); |
| |
| AdditionalNodeNetworkConfig.fromJson(core.Map json_) |
| : this( |
| network: json_['network'] as core.String?, |
| subnetwork: json_['subnetwork'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final network = this.network; |
| final subnetwork = this.subnetwork; |
| return {'network': ?network, 'subnetwork': ?subnetwork}; |
| } |
| } |
| |
| /// AdditionalPodNetworkConfig is the configuration for additional pod networks |
| /// within the NodeNetworkConfig message |
| class AdditionalPodNetworkConfig { |
| /// The maximum number of pods per node which use this pod network. |
| MaxPodsConstraint? maxPodsPerNode; |
| |
| /// The name of the network attachment for pods to communicate to; cannot be |
| /// specified along with subnetwork or secondary_pod_range. |
| core.String? networkAttachment; |
| |
| /// The name of the secondary range on the subnet which provides IP address |
| /// for this pod range. |
| core.String? secondaryPodRange; |
| |
| /// Name of the subnetwork where the additional pod network belongs. |
| core.String? subnetwork; |
| |
| AdditionalPodNetworkConfig({ |
| this.maxPodsPerNode, |
| this.networkAttachment, |
| this.secondaryPodRange, |
| this.subnetwork, |
| }); |
| |
| AdditionalPodNetworkConfig.fromJson(core.Map json_) |
| : this( |
| maxPodsPerNode: json_.containsKey('maxPodsPerNode') |
| ? MaxPodsConstraint.fromJson( |
| json_['maxPodsPerNode'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| networkAttachment: json_['networkAttachment'] as core.String?, |
| secondaryPodRange: json_['secondaryPodRange'] as core.String?, |
| subnetwork: json_['subnetwork'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final maxPodsPerNode = this.maxPodsPerNode; |
| final networkAttachment = this.networkAttachment; |
| final secondaryPodRange = this.secondaryPodRange; |
| final subnetwork = this.subnetwork; |
| return { |
| 'maxPodsPerNode': ?maxPodsPerNode, |
| 'networkAttachment': ?networkAttachment, |
| 'secondaryPodRange': ?secondaryPodRange, |
| 'subnetwork': ?subnetwork, |
| }; |
| } |
| } |
| |
| /// AdditionalPodRangesConfig is the configuration for additional pod secondary |
| /// ranges supporting the ClusterUpdate message. |
| class AdditionalPodRangesConfig { |
| /// Information for additional pod range. |
| /// |
| /// Output only. |
| core.List<RangeInfo>? podRangeInfo; |
| |
| /// Name for pod secondary ipv4 range which has the actual range defined |
| /// ahead. |
| core.List<core.String>? podRangeNames; |
| |
| AdditionalPodRangesConfig({this.podRangeInfo, this.podRangeNames}); |
| |
| AdditionalPodRangesConfig.fromJson(core.Map json_) |
| : this( |
| podRangeInfo: (json_['podRangeInfo'] as core.List?) |
| ?.map( |
| (value) => RangeInfo.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| podRangeNames: (json_['podRangeNames'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final podRangeInfo = this.podRangeInfo; |
| final podRangeNames = this.podRangeNames; |
| return {'podRangeInfo': ?podRangeInfo, 'podRangeNames': ?podRangeNames}; |
| } |
| } |
| |
| /// Configuration for the addons that can be automatically spun up in the |
| /// cluster, enabling additional functionality. |
| class AddonsConfig { |
| /// Configuration for the Cloud Run addon, which allows the user to use a |
| /// managed Knative service. |
| CloudRunConfig? cloudRunConfig; |
| |
| /// Configuration for the ConfigConnector add-on, a Kubernetes extension to |
| /// manage hosted Google Cloud services through the Kubernetes API. |
| ConfigConnectorConfig? configConnectorConfig; |
| |
| /// Configuration for NodeLocalDNS, a dns cache running on cluster nodes |
| DnsCacheConfig? dnsCacheConfig; |
| |
| /// Configuration for the Compute Engine Persistent Disk CSI driver. |
| GcePersistentDiskCsiDriverConfig? gcePersistentDiskCsiDriverConfig; |
| |
| /// Configuration for the Filestore CSI driver. |
| GcpFilestoreCsiDriverConfig? gcpFilestoreCsiDriverConfig; |
| |
| /// Configuration for the Cloud Storage Fuse CSI driver. |
| GcsFuseCsiDriverConfig? gcsFuseCsiDriverConfig; |
| |
| /// Configuration for the Backup for GKE agent addon. |
| GkeBackupAgentConfig? gkeBackupAgentConfig; |
| |
| /// Configuration for the High Scale Checkpointing add-on. |
| HighScaleCheckpointingConfig? highScaleCheckpointingConfig; |
| |
| /// Configuration for the horizontal pod autoscaling feature, which increases |
| /// or decreases the number of replica pods a replication controller has based |
| /// on the resource usage of the existing pods. |
| HorizontalPodAutoscaling? horizontalPodAutoscaling; |
| |
| /// Configuration for the HTTP (L7) load balancing controller addon, which |
| /// makes it easy to set up HTTP load balancers for services in a cluster. |
| HttpLoadBalancing? httpLoadBalancing; |
| |
| /// Configuration for the Kubernetes Dashboard. |
| /// |
| /// This addon is deprecated, and will be disabled in 1.15. It is recommended |
| /// to use the Cloud Console to manage and monitor your Kubernetes clusters, |
| /// workloads and applications. For more information, see: |
| /// https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| KubernetesDashboard? kubernetesDashboard; |
| |
| /// Configuration for the Lustre CSI driver. |
| LustreCsiDriverConfig? lustreCsiDriverConfig; |
| |
| /// Configuration for NetworkPolicy. |
| /// |
| /// This only tracks whether the addon is enabled or not on the Master, it |
| /// does not track whether network policy is enabled for the nodes. |
| NetworkPolicyConfig? networkPolicyConfig; |
| |
| /// Configuration for the Cloud Storage Parallelstore CSI driver. |
| ParallelstoreCsiDriverConfig? parallelstoreCsiDriverConfig; |
| |
| /// Configuration for the Pod Snapshot feature. |
| /// |
| /// Optional. |
| PodSnapshotConfig? podSnapshotConfig; |
| |
| /// Configuration for Ray Operator addon. |
| /// |
| /// Optional. |
| RayOperatorConfig? rayOperatorConfig; |
| |
| /// Configuration for the slice controller add-on. |
| /// |
| /// Optional. |
| SliceControllerConfig? sliceControllerConfig; |
| |
| /// Configuration for the Slurm Operator. |
| SlurmOperatorConfig? slurmOperatorConfig; |
| |
| /// Configuration for the StatefulHA add-on. |
| /// |
| /// Optional. |
| StatefulHAConfig? statefulHaConfig; |
| |
| AddonsConfig({ |
| this.cloudRunConfig, |
| this.configConnectorConfig, |
| this.dnsCacheConfig, |
| this.gcePersistentDiskCsiDriverConfig, |
| this.gcpFilestoreCsiDriverConfig, |
| this.gcsFuseCsiDriverConfig, |
| this.gkeBackupAgentConfig, |
| this.highScaleCheckpointingConfig, |
| this.horizontalPodAutoscaling, |
| this.httpLoadBalancing, |
| this.kubernetesDashboard, |
| this.lustreCsiDriverConfig, |
| this.networkPolicyConfig, |
| this.parallelstoreCsiDriverConfig, |
| this.podSnapshotConfig, |
| this.rayOperatorConfig, |
| this.sliceControllerConfig, |
| this.slurmOperatorConfig, |
| this.statefulHaConfig, |
| }); |
| |
| AddonsConfig.fromJson(core.Map json_) |
| : this( |
| cloudRunConfig: json_.containsKey('cloudRunConfig') |
| ? CloudRunConfig.fromJson( |
| json_['cloudRunConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| configConnectorConfig: json_.containsKey('configConnectorConfig') |
| ? ConfigConnectorConfig.fromJson( |
| json_['configConnectorConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dnsCacheConfig: json_.containsKey('dnsCacheConfig') |
| ? DnsCacheConfig.fromJson( |
| json_['dnsCacheConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gcePersistentDiskCsiDriverConfig: |
| json_.containsKey('gcePersistentDiskCsiDriverConfig') |
| ? GcePersistentDiskCsiDriverConfig.fromJson( |
| json_['gcePersistentDiskCsiDriverConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gcpFilestoreCsiDriverConfig: |
| json_.containsKey('gcpFilestoreCsiDriverConfig') |
| ? GcpFilestoreCsiDriverConfig.fromJson( |
| json_['gcpFilestoreCsiDriverConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gcsFuseCsiDriverConfig: json_.containsKey('gcsFuseCsiDriverConfig') |
| ? GcsFuseCsiDriverConfig.fromJson( |
| json_['gcsFuseCsiDriverConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gkeBackupAgentConfig: json_.containsKey('gkeBackupAgentConfig') |
| ? GkeBackupAgentConfig.fromJson( |
| json_['gkeBackupAgentConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| highScaleCheckpointingConfig: |
| json_.containsKey('highScaleCheckpointingConfig') |
| ? HighScaleCheckpointingConfig.fromJson( |
| json_['highScaleCheckpointingConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| horizontalPodAutoscaling: json_.containsKey('horizontalPodAutoscaling') |
| ? HorizontalPodAutoscaling.fromJson( |
| json_['horizontalPodAutoscaling'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| httpLoadBalancing: json_.containsKey('httpLoadBalancing') |
| ? HttpLoadBalancing.fromJson( |
| json_['httpLoadBalancing'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| kubernetesDashboard: json_.containsKey('kubernetesDashboard') |
| ? KubernetesDashboard.fromJson( |
| json_['kubernetesDashboard'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| lustreCsiDriverConfig: json_.containsKey('lustreCsiDriverConfig') |
| ? LustreCsiDriverConfig.fromJson( |
| json_['lustreCsiDriverConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| networkPolicyConfig: json_.containsKey('networkPolicyConfig') |
| ? NetworkPolicyConfig.fromJson( |
| json_['networkPolicyConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| parallelstoreCsiDriverConfig: |
| json_.containsKey('parallelstoreCsiDriverConfig') |
| ? ParallelstoreCsiDriverConfig.fromJson( |
| json_['parallelstoreCsiDriverConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| podSnapshotConfig: json_.containsKey('podSnapshotConfig') |
| ? PodSnapshotConfig.fromJson( |
| json_['podSnapshotConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| rayOperatorConfig: json_.containsKey('rayOperatorConfig') |
| ? RayOperatorConfig.fromJson( |
| json_['rayOperatorConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| sliceControllerConfig: json_.containsKey('sliceControllerConfig') |
| ? SliceControllerConfig.fromJson( |
| json_['sliceControllerConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| slurmOperatorConfig: json_.containsKey('slurmOperatorConfig') |
| ? SlurmOperatorConfig.fromJson( |
| json_['slurmOperatorConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| statefulHaConfig: json_.containsKey('statefulHaConfig') |
| ? StatefulHAConfig.fromJson( |
| json_['statefulHaConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final cloudRunConfig = this.cloudRunConfig; |
| final configConnectorConfig = this.configConnectorConfig; |
| final dnsCacheConfig = this.dnsCacheConfig; |
| final gcePersistentDiskCsiDriverConfig = |
| this.gcePersistentDiskCsiDriverConfig; |
| final gcpFilestoreCsiDriverConfig = this.gcpFilestoreCsiDriverConfig; |
| final gcsFuseCsiDriverConfig = this.gcsFuseCsiDriverConfig; |
| final gkeBackupAgentConfig = this.gkeBackupAgentConfig; |
| final highScaleCheckpointingConfig = this.highScaleCheckpointingConfig; |
| final horizontalPodAutoscaling = this.horizontalPodAutoscaling; |
| final httpLoadBalancing = this.httpLoadBalancing; |
| final kubernetesDashboard = this.kubernetesDashboard; |
| final lustreCsiDriverConfig = this.lustreCsiDriverConfig; |
| final networkPolicyConfig = this.networkPolicyConfig; |
| final parallelstoreCsiDriverConfig = this.parallelstoreCsiDriverConfig; |
| final podSnapshotConfig = this.podSnapshotConfig; |
| final rayOperatorConfig = this.rayOperatorConfig; |
| final sliceControllerConfig = this.sliceControllerConfig; |
| final slurmOperatorConfig = this.slurmOperatorConfig; |
| final statefulHaConfig = this.statefulHaConfig; |
| return { |
| 'cloudRunConfig': ?cloudRunConfig, |
| 'configConnectorConfig': ?configConnectorConfig, |
| 'dnsCacheConfig': ?dnsCacheConfig, |
| 'gcePersistentDiskCsiDriverConfig': ?gcePersistentDiskCsiDriverConfig, |
| 'gcpFilestoreCsiDriverConfig': ?gcpFilestoreCsiDriverConfig, |
| 'gcsFuseCsiDriverConfig': ?gcsFuseCsiDriverConfig, |
| 'gkeBackupAgentConfig': ?gkeBackupAgentConfig, |
| 'highScaleCheckpointingConfig': ?highScaleCheckpointingConfig, |
| 'horizontalPodAutoscaling': ?horizontalPodAutoscaling, |
| 'httpLoadBalancing': ?httpLoadBalancing, |
| 'kubernetesDashboard': ?kubernetesDashboard, |
| 'lustreCsiDriverConfig': ?lustreCsiDriverConfig, |
| 'networkPolicyConfig': ?networkPolicyConfig, |
| 'parallelstoreCsiDriverConfig': ?parallelstoreCsiDriverConfig, |
| 'podSnapshotConfig': ?podSnapshotConfig, |
| 'rayOperatorConfig': ?rayOperatorConfig, |
| 'sliceControllerConfig': ?sliceControllerConfig, |
| 'slurmOperatorConfig': ?slurmOperatorConfig, |
| 'statefulHaConfig': ?statefulHaConfig, |
| }; |
| } |
| } |
| |
| /// AdvancedDatapathObservabilityConfig specifies configuration of observability |
| /// features of advanced datapath. |
| class AdvancedDatapathObservabilityConfig { |
| /// Expose flow metrics on nodes |
| core.bool? enableMetrics; |
| |
| /// Enable Relay component |
| core.bool? enableRelay; |
| |
| /// Method used to make Relay available |
| /// Possible string values are: |
| /// - "RELAY_MODE_UNSPECIFIED" : Default value. This shouldn't be used. |
| /// - "DISABLED" : disabled |
| /// - "INTERNAL_VPC_LB" : exposed via internal load balancer |
| /// - "EXTERNAL_LB" : exposed via external load balancer |
| core.String? relayMode; |
| |
| AdvancedDatapathObservabilityConfig({ |
| this.enableMetrics, |
| this.enableRelay, |
| this.relayMode, |
| }); |
| |
| AdvancedDatapathObservabilityConfig.fromJson(core.Map json_) |
| : this( |
| enableMetrics: json_['enableMetrics'] as core.bool?, |
| enableRelay: json_['enableRelay'] as core.bool?, |
| relayMode: json_['relayMode'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enableMetrics = this.enableMetrics; |
| final enableRelay = this.enableRelay; |
| final relayMode = this.relayMode; |
| return { |
| 'enableMetrics': ?enableMetrics, |
| 'enableRelay': ?enableRelay, |
| 'relayMode': ?relayMode, |
| }; |
| } |
| } |
| |
| /// Specifies options for controlling advanced machine features. |
| class AdvancedMachineFeatures { |
| /// Whether or not to enable nested virtualization (defaults to false). |
| core.bool? enableNestedVirtualization; |
| |
| /// Type of Performance Monitoring Unit (PMU) requested on node pool |
| /// instances. |
| /// |
| /// If unset, PMU will not be available to the node. |
| /// Possible string values are: |
| /// - "PERFORMANCE_MONITORING_UNIT_UNSPECIFIED" : PMU not enabled. |
| /// - "ARCHITECTURAL" : Architecturally defined non-LLC events. |
| /// - "STANDARD" : Most documented core/L2 events. |
| /// - "ENHANCED" : Most documented core/L2 and LLC events. |
| core.String? performanceMonitoringUnit; |
| |
| /// The number of threads per physical core. |
| /// |
| /// To disable simultaneous multithreading (SMT) set this to 1. If unset, the |
| /// maximum number of threads supported per core by the underlying processor |
| /// is assumed. |
| core.String? threadsPerCore; |
| |
| AdvancedMachineFeatures({ |
| this.enableNestedVirtualization, |
| this.performanceMonitoringUnit, |
| this.threadsPerCore, |
| }); |
| |
| AdvancedMachineFeatures.fromJson(core.Map json_) |
| : this( |
| enableNestedVirtualization: |
| json_['enableNestedVirtualization'] as core.bool?, |
| performanceMonitoringUnit: |
| json_['performanceMonitoringUnit'] as core.String?, |
| threadsPerCore: json_['threadsPerCore'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enableNestedVirtualization = this.enableNestedVirtualization; |
| final performanceMonitoringUnit = this.performanceMonitoringUnit; |
| final threadsPerCore = this.threadsPerCore; |
| return { |
| 'enableNestedVirtualization': ?enableNestedVirtualization, |
| 'performanceMonitoringUnit': ?performanceMonitoringUnit, |
| 'threadsPerCore': ?threadsPerCore, |
| }; |
| } |
| } |
| |
| /// AnonymousAuthenticationConfig defines the settings needed to limit endpoints |
| /// that allow anonymous authentication. |
| class AnonymousAuthenticationConfig { |
| /// Defines the mode of limiting anonymous access in the cluster. |
| /// Possible string values are: |
| /// - "MODE_UNSPECIFIED" : Default value not specified. |
| /// - "ENABLED" : Anonymous authentication is allowed for all endpoints. |
| /// - "LIMITED" : Anonymous authentication is allowed for only health check |
| /// endpoints. |
| core.String? mode; |
| |
| AnonymousAuthenticationConfig({this.mode}); |
| |
| AnonymousAuthenticationConfig.fromJson(core.Map json_) |
| : this(mode: json_['mode'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final mode = this.mode; |
| return {'mode': ?mode}; |
| } |
| } |
| |
| /// Configuration for returning group information from authenticators. |
| class AuthenticatorGroupsConfig { |
| /// Whether this cluster should return group membership lookups during |
| /// authentication using a group of security groups. |
| core.bool? enabled; |
| |
| /// The name of the security group-of-groups to be used. |
| /// |
| /// Only relevant if enabled = true. |
| core.String? securityGroup; |
| |
| AuthenticatorGroupsConfig({this.enabled, this.securityGroup}); |
| |
| AuthenticatorGroupsConfig.fromJson(core.Map json_) |
| : this( |
| enabled: json_['enabled'] as core.bool?, |
| securityGroup: json_['securityGroup'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| final securityGroup = this.securityGroup; |
| return {'enabled': ?enabled, 'securityGroup': ?securityGroup}; |
| } |
| } |
| |
| /// AutoIpamConfig contains all information related to Auto IPAM |
| class AutoIpamConfig { |
| /// The flag that enables Auto IPAM on this cluster |
| core.bool? enabled; |
| |
| AutoIpamConfig({this.enabled}); |
| |
| AutoIpamConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// AutoMonitoringConfig defines the configuration for GKE Workload |
| /// Auto-Monitoring. |
| class AutoMonitoringConfig { |
| /// Scope for GKE Workload Auto-Monitoring. |
| /// Possible string values are: |
| /// - "SCOPE_UNSPECIFIED" : Not set. |
| /// - "ALL" : Auto-Monitoring is enabled for all supported applications. |
| /// - "NONE" : Disable Auto-Monitoring. |
| core.String? scope; |
| |
| AutoMonitoringConfig({this.scope}); |
| |
| AutoMonitoringConfig.fromJson(core.Map json_) |
| : this(scope: json_['scope'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final scope = this.scope; |
| return {'scope': ?scope}; |
| } |
| } |
| |
| /// AutoUpgradeOptions defines the set of options for the user to control how |
| /// the Auto Upgrades will proceed. |
| class AutoUpgradeOptions { |
| /// This field is set when upgrades are about to commence with the approximate |
| /// start time for the upgrades, in |
| /// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| /// |
| /// Output only. |
| core.String? autoUpgradeStartTime; |
| |
| /// This field is set when upgrades are about to commence with the description |
| /// of the upgrade. |
| /// |
| /// Output only. |
| core.String? description; |
| |
| AutoUpgradeOptions({this.autoUpgradeStartTime, this.description}); |
| |
| AutoUpgradeOptions.fromJson(core.Map json_) |
| : this( |
| autoUpgradeStartTime: json_['autoUpgradeStartTime'] as core.String?, |
| description: json_['description'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autoUpgradeStartTime = this.autoUpgradeStartTime; |
| final description = this.description; |
| return { |
| 'autoUpgradeStartTime': ?autoUpgradeStartTime, |
| 'description': ?description, |
| }; |
| } |
| } |
| |
| /// Autopilot is the configuration for Autopilot settings on the cluster. |
| class Autopilot { |
| /// ClusterPolicyConfig denotes cluster level policies that are enforced for |
| /// the cluster. |
| ClusterPolicyConfig? clusterPolicyConfig; |
| |
| /// Enable Autopilot |
| core.bool? enabled; |
| |
| /// PrivilegedAdmissionConfig is the configuration related to privileged |
| /// admission control. |
| PrivilegedAdmissionConfig? privilegedAdmissionConfig; |
| |
| /// WorkloadPolicyConfig is the configuration related to GCW workload policy |
| WorkloadPolicyConfig? workloadPolicyConfig; |
| |
| Autopilot({ |
| this.clusterPolicyConfig, |
| this.enabled, |
| this.privilegedAdmissionConfig, |
| this.workloadPolicyConfig, |
| }); |
| |
| Autopilot.fromJson(core.Map json_) |
| : this( |
| clusterPolicyConfig: json_.containsKey('clusterPolicyConfig') |
| ? ClusterPolicyConfig.fromJson( |
| json_['clusterPolicyConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enabled: json_['enabled'] as core.bool?, |
| privilegedAdmissionConfig: |
| json_.containsKey('privilegedAdmissionConfig') |
| ? PrivilegedAdmissionConfig.fromJson( |
| json_['privilegedAdmissionConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| workloadPolicyConfig: json_.containsKey('workloadPolicyConfig') |
| ? WorkloadPolicyConfig.fromJson( |
| json_['workloadPolicyConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterPolicyConfig = this.clusterPolicyConfig; |
| final enabled = this.enabled; |
| final privilegedAdmissionConfig = this.privilegedAdmissionConfig; |
| final workloadPolicyConfig = this.workloadPolicyConfig; |
| return { |
| 'clusterPolicyConfig': ?clusterPolicyConfig, |
| 'enabled': ?enabled, |
| 'privilegedAdmissionConfig': ?privilegedAdmissionConfig, |
| 'workloadPolicyConfig': ?workloadPolicyConfig, |
| }; |
| } |
| } |
| |
| /// AutopilotCompatibilityIssue contains information about a specific |
| /// compatibility issue with Autopilot mode. |
| class AutopilotCompatibilityIssue { |
| /// The constraint type of the issue. |
| core.String? constraintType; |
| |
| /// The description of the issue. |
| core.String? description; |
| |
| /// A URL to a public documentation, which addresses resolving this issue. |
| core.String? documentationUrl; |
| |
| /// The incompatibility type of this issue. |
| /// Possible string values are: |
| /// - "UNSPECIFIED" : Default value, should not be used. |
| /// - "INCOMPATIBILITY" : Indicates that the issue is a known incompatibility |
| /// between the cluster and Autopilot mode. |
| /// - "ADDITIONAL_CONFIG_REQUIRED" : Indicates the issue is an incompatibility |
| /// if customers take no further action to resolve. |
| /// - "PASSED_WITH_OPTIONAL_CONFIG" : Indicates the issue is not an |
| /// incompatibility, but depending on the workloads business logic, there is a |
| /// potential that they won't work on Autopilot. |
| core.String? incompatibilityType; |
| |
| /// The last time when this issue was observed. |
| core.String? lastObservation; |
| |
| /// The name of the resources which are subject to this issue. |
| core.List<core.String>? subjects; |
| |
| AutopilotCompatibilityIssue({ |
| this.constraintType, |
| this.description, |
| this.documentationUrl, |
| this.incompatibilityType, |
| this.lastObservation, |
| this.subjects, |
| }); |
| |
| AutopilotCompatibilityIssue.fromJson(core.Map json_) |
| : this( |
| constraintType: json_['constraintType'] as core.String?, |
| description: json_['description'] as core.String?, |
| documentationUrl: json_['documentationUrl'] as core.String?, |
| incompatibilityType: json_['incompatibilityType'] as core.String?, |
| lastObservation: json_['lastObservation'] as core.String?, |
| subjects: (json_['subjects'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final constraintType = this.constraintType; |
| final description = this.description; |
| final documentationUrl = this.documentationUrl; |
| final incompatibilityType = this.incompatibilityType; |
| final lastObservation = this.lastObservation; |
| final subjects = this.subjects; |
| return { |
| 'constraintType': ?constraintType, |
| 'description': ?description, |
| 'documentationUrl': ?documentationUrl, |
| 'incompatibilityType': ?incompatibilityType, |
| 'lastObservation': ?lastObservation, |
| 'subjects': ?subjects, |
| }; |
| } |
| } |
| |
| /// AutopilotConfig contains configuration of autopilot feature for this node |
| /// pool. |
| class AutopilotConfig { |
| /// Denotes that nodes belonging to this node pool are Autopilot nodes. |
| core.bool? enabled; |
| |
| AutopilotConfig({this.enabled}); |
| |
| AutopilotConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// AutoprovisioningNodePoolDefaults contains defaults for a node pool created |
| /// by NAP. |
| class AutoprovisioningNodePoolDefaults { |
| /// The Customer Managed Encryption Key used to encrypt the boot disk attached |
| /// to each node in the node pool. |
| /// |
| /// This should be of the form |
| /// projects/\[KEY_PROJECT_ID\]/locations/\[LOCATION\]/keyRings/\[RING_NAME\]/cryptoKeys/\[KEY_NAME\]. |
| /// For more information about protecting resources with Cloud KMS Keys please |
| /// see: |
| /// https://cloud.google.com/compute/docs/disks/customer-managed-encryption |
| core.String? bootDiskKmsKey; |
| |
| /// Size of the disk attached to each node, specified in GB. |
| /// |
| /// The smallest allowed disk size is 10GB. If unspecified, the default disk |
| /// size is 100GB. |
| core.int? diskSizeGb; |
| |
| /// Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or |
| /// 'pd-balanced') If unspecified, the default disk type is 'pd-standard' |
| core.String? diskType; |
| |
| /// The image type to use for NAP created node. |
| /// |
| /// Please see |
| /// https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for |
| /// available image types. |
| core.String? imageType; |
| |
| /// Use NodePoolAutoConfig.NodeKubeletConfig instead. |
| /// |
| /// Deprecated. |
| core.bool? insecureKubeletReadonlyPortEnabled; |
| |
| /// Specifies the node management options for NAP created node-pools. |
| NodeManagement? management; |
| |
| /// Minimum CPU platform to be used for NAP created node pools. |
| /// |
| /// The instance may be scheduled on the specified or newer CPU platform. |
| /// Applicable values are the friendly names of CPU platforms, such as |
| /// minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For |
| /// more information, read |
| /// [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). |
| /// This field is deprecated, min_cpu_platform should be specified using |
| /// `cloud.google.com/requested-min-cpu-platform` label selector on the pod. |
| /// To unset the min cpu platform field pass "automatic" as field value. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? minCpuPlatform; |
| |
| /// Scopes that are used by NAP when creating node pools. |
| core.List<core.String>? oauthScopes; |
| |
| /// The Google Cloud Platform Service Account to be used by the node VMs. |
| core.String? serviceAccount; |
| |
| /// Shielded Instance options. |
| ShieldedInstanceConfig? shieldedInstanceConfig; |
| |
| /// Specifies the upgrade settings for NAP created node pools |
| UpgradeSettings? upgradeSettings; |
| |
| AutoprovisioningNodePoolDefaults({ |
| this.bootDiskKmsKey, |
| this.diskSizeGb, |
| this.diskType, |
| this.imageType, |
| this.insecureKubeletReadonlyPortEnabled, |
| this.management, |
| this.minCpuPlatform, |
| this.oauthScopes, |
| this.serviceAccount, |
| this.shieldedInstanceConfig, |
| this.upgradeSettings, |
| }); |
| |
| AutoprovisioningNodePoolDefaults.fromJson(core.Map json_) |
| : this( |
| bootDiskKmsKey: json_['bootDiskKmsKey'] as core.String?, |
| diskSizeGb: json_['diskSizeGb'] as core.int?, |
| diskType: json_['diskType'] as core.String?, |
| imageType: json_['imageType'] as core.String?, |
| insecureKubeletReadonlyPortEnabled: |
| json_['insecureKubeletReadonlyPortEnabled'] as core.bool?, |
| management: json_.containsKey('management') |
| ? NodeManagement.fromJson( |
| json_['management'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| minCpuPlatform: json_['minCpuPlatform'] as core.String?, |
| oauthScopes: (json_['oauthScopes'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| serviceAccount: json_['serviceAccount'] as core.String?, |
| shieldedInstanceConfig: json_.containsKey('shieldedInstanceConfig') |
| ? ShieldedInstanceConfig.fromJson( |
| json_['shieldedInstanceConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| upgradeSettings: json_.containsKey('upgradeSettings') |
| ? UpgradeSettings.fromJson( |
| json_['upgradeSettings'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final bootDiskKmsKey = this.bootDiskKmsKey; |
| final diskSizeGb = this.diskSizeGb; |
| final diskType = this.diskType; |
| final imageType = this.imageType; |
| final insecureKubeletReadonlyPortEnabled = |
| this.insecureKubeletReadonlyPortEnabled; |
| final management = this.management; |
| final minCpuPlatform = this.minCpuPlatform; |
| final oauthScopes = this.oauthScopes; |
| final serviceAccount = this.serviceAccount; |
| final shieldedInstanceConfig = this.shieldedInstanceConfig; |
| final upgradeSettings = this.upgradeSettings; |
| return { |
| 'bootDiskKmsKey': ?bootDiskKmsKey, |
| 'diskSizeGb': ?diskSizeGb, |
| 'diskType': ?diskType, |
| 'imageType': ?imageType, |
| 'insecureKubeletReadonlyPortEnabled': ?insecureKubeletReadonlyPortEnabled, |
| 'management': ?management, |
| 'minCpuPlatform': ?minCpuPlatform, |
| 'oauthScopes': ?oauthScopes, |
| 'serviceAccount': ?serviceAccount, |
| 'shieldedInstanceConfig': ?shieldedInstanceConfig, |
| 'upgradeSettings': ?upgradeSettings, |
| }; |
| } |
| } |
| |
| /// Autoscaled rollout policy utilizes the cluster autoscaler during blue-green |
| /// upgrade to scale both the blue and green pools. |
| class AutoscaledRolloutPolicy { |
| /// Time to wait after cordoning the blue pool before draining the nodes. |
| /// |
| /// Defaults to 3 days. The value can be set between 0 and 7 days, inclusive. |
| /// |
| /// Optional. |
| core.String? waitForDrainDuration; |
| |
| AutoscaledRolloutPolicy({this.waitForDrainDuration}); |
| |
| AutoscaledRolloutPolicy.fromJson(core.Map json_) |
| : this(waitForDrainDuration: json_['waitForDrainDuration'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final waitForDrainDuration = this.waitForDrainDuration; |
| return {'waitForDrainDuration': ?waitForDrainDuration}; |
| } |
| } |
| |
| /// Best effort provisioning. |
| class BestEffortProvisioning { |
| /// When this is enabled, cluster/node pool creations will ignore non-fatal |
| /// errors like stockout to best provision as many nodes as possible right now |
| /// and eventually bring up all target number of nodes |
| core.bool? enabled; |
| |
| /// Minimum number of nodes to be provisioned to be considered as succeeded, |
| /// and the rest of nodes will be provisioned gradually and eventually when |
| /// stockout issue has been resolved. |
| core.int? minProvisionNodes; |
| |
| BestEffortProvisioning({this.enabled, this.minProvisionNodes}); |
| |
| BestEffortProvisioning.fromJson(core.Map json_) |
| : this( |
| enabled: json_['enabled'] as core.bool?, |
| minProvisionNodes: json_['minProvisionNodes'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| final minProvisionNodes = this.minProvisionNodes; |
| return {'enabled': ?enabled, 'minProvisionNodes': ?minProvisionNodes}; |
| } |
| } |
| |
| /// Parameters for using BigQuery as the destination of resource usage export. |
| class BigQueryDestination { |
| /// The ID of a BigQuery Dataset. |
| core.String? datasetId; |
| |
| BigQueryDestination({this.datasetId}); |
| |
| BigQueryDestination.fromJson(core.Map json_) |
| : this(datasetId: json_['datasetId'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final datasetId = this.datasetId; |
| return {'datasetId': ?datasetId}; |
| } |
| } |
| |
| /// Configuration for Binary Authorization. |
| class BinaryAuthorization { |
| /// This field is deprecated. |
| /// |
| /// Leave this unset and instead configure BinaryAuthorization using |
| /// evaluation_mode. If evaluation_mode is set to anything other than |
| /// EVALUATION_MODE_UNSPECIFIED, this field is ignored. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.bool? enabled; |
| |
| /// Mode of operation for binauthz policy evaluation. |
| /// |
| /// If unspecified, defaults to DISABLED. |
| /// Possible string values are: |
| /// - "EVALUATION_MODE_UNSPECIFIED" : Default value |
| /// - "DISABLED" : Disable BinaryAuthorization |
| /// - "PROJECT_SINGLETON_POLICY_ENFORCE" : Enforce Kubernetes admission |
| /// requests with BinaryAuthorization using the project's singleton policy. |
| /// This is equivalent to setting the enabled boolean to true. |
| core.String? evaluationMode; |
| |
| BinaryAuthorization({this.enabled, this.evaluationMode}); |
| |
| BinaryAuthorization.fromJson(core.Map json_) |
| : this( |
| enabled: json_['enabled'] as core.bool?, |
| evaluationMode: json_['evaluationMode'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| final evaluationMode = this.evaluationMode; |
| return {'enabled': ?enabled, 'evaluationMode': ?evaluationMode}; |
| } |
| } |
| |
| /// Information relevant to blue-green upgrade. |
| class BlueGreenInfo { |
| /// The resource URLs of the \[managed instance groups\] |
| /// (/compute/docs/instance-groups/creating-groups-of-managed-instances) |
| /// associated with blue pool. |
| core.List<core.String>? blueInstanceGroupUrls; |
| |
| /// Time to start deleting blue pool to complete blue-green upgrade, in |
| /// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| core.String? bluePoolDeletionStartTime; |
| |
| /// The resource URLs of the \[managed instance groups\] |
| /// (/compute/docs/instance-groups/creating-groups-of-managed-instances) |
| /// associated with green pool. |
| core.List<core.String>? greenInstanceGroupUrls; |
| |
| /// Version of green pool. |
| core.String? greenPoolVersion; |
| |
| /// Current blue-green upgrade phase. |
| /// Possible string values are: |
| /// - "PHASE_UNSPECIFIED" : Unspecified phase. |
| /// - "UPDATE_STARTED" : blue-green upgrade has been initiated. |
| /// - "CREATING_GREEN_POOL" : Start creating green pool nodes. |
| /// - "CORDONING_BLUE_POOL" : Start cordoning blue pool nodes. |
| /// - "DRAINING_BLUE_POOL" : Start draining blue pool nodes. |
| /// - "NODE_POOL_SOAKING" : Start soaking time after draining entire blue |
| /// pool. |
| /// - "DELETING_BLUE_POOL" : Start deleting blue nodes. |
| /// - "ROLLBACK_STARTED" : Rollback has been initiated. |
| core.String? phase; |
| |
| BlueGreenInfo({ |
| this.blueInstanceGroupUrls, |
| this.bluePoolDeletionStartTime, |
| this.greenInstanceGroupUrls, |
| this.greenPoolVersion, |
| this.phase, |
| }); |
| |
| BlueGreenInfo.fromJson(core.Map json_) |
| : this( |
| blueInstanceGroupUrls: (json_['blueInstanceGroupUrls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| bluePoolDeletionStartTime: |
| json_['bluePoolDeletionStartTime'] as core.String?, |
| greenInstanceGroupUrls: (json_['greenInstanceGroupUrls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| greenPoolVersion: json_['greenPoolVersion'] as core.String?, |
| phase: json_['phase'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final blueInstanceGroupUrls = this.blueInstanceGroupUrls; |
| final bluePoolDeletionStartTime = this.bluePoolDeletionStartTime; |
| final greenInstanceGroupUrls = this.greenInstanceGroupUrls; |
| final greenPoolVersion = this.greenPoolVersion; |
| final phase = this.phase; |
| return { |
| 'blueInstanceGroupUrls': ?blueInstanceGroupUrls, |
| 'bluePoolDeletionStartTime': ?bluePoolDeletionStartTime, |
| 'greenInstanceGroupUrls': ?greenInstanceGroupUrls, |
| 'greenPoolVersion': ?greenPoolVersion, |
| 'phase': ?phase, |
| }; |
| } |
| } |
| |
| /// Settings for blue-green upgrade. |
| class BlueGreenSettings { |
| /// Autoscaled policy for cluster autoscaler enabled blue-green upgrade. |
| AutoscaledRolloutPolicy? autoscaledRolloutPolicy; |
| |
| /// Time needed after draining entire blue pool. |
| /// |
| /// After this period, blue pool will be cleaned up. |
| core.String? nodePoolSoakDuration; |
| |
| /// Standard policy for the blue-green upgrade. |
| StandardRolloutPolicy? standardRolloutPolicy; |
| |
| BlueGreenSettings({ |
| this.autoscaledRolloutPolicy, |
| this.nodePoolSoakDuration, |
| this.standardRolloutPolicy, |
| }); |
| |
| BlueGreenSettings.fromJson(core.Map json_) |
| : this( |
| autoscaledRolloutPolicy: json_.containsKey('autoscaledRolloutPolicy') |
| ? AutoscaledRolloutPolicy.fromJson( |
| json_['autoscaledRolloutPolicy'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodePoolSoakDuration: json_['nodePoolSoakDuration'] as core.String?, |
| standardRolloutPolicy: json_.containsKey('standardRolloutPolicy') |
| ? StandardRolloutPolicy.fromJson( |
| json_['standardRolloutPolicy'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autoscaledRolloutPolicy = this.autoscaledRolloutPolicy; |
| final nodePoolSoakDuration = this.nodePoolSoakDuration; |
| final standardRolloutPolicy = this.standardRolloutPolicy; |
| return { |
| 'autoscaledRolloutPolicy': ?autoscaledRolloutPolicy, |
| 'nodePoolSoakDuration': ?nodePoolSoakDuration, |
| 'standardRolloutPolicy': ?standardRolloutPolicy, |
| }; |
| } |
| } |
| |
| /// BootDisk specifies the boot disk configuration for node pools. |
| class BootDisk { |
| /// Disk type of the boot disk. |
| /// |
| /// (i.e. Hyperdisk-Balanced, PD-Balanced, etc.) |
| core.String? diskType; |
| |
| /// For Hyperdisk-Balanced only, the provisioned IOPS config value. |
| core.String? provisionedIops; |
| |
| /// For Hyperdisk-Balanced only, the provisioned throughput config value. |
| core.String? provisionedThroughput; |
| |
| /// Disk size in GB. |
| /// |
| /// Replaces NodeConfig.disk_size_gb |
| core.String? sizeGb; |
| |
| BootDisk({ |
| this.diskType, |
| this.provisionedIops, |
| this.provisionedThroughput, |
| this.sizeGb, |
| }); |
| |
| BootDisk.fromJson(core.Map json_) |
| : this( |
| diskType: json_['diskType'] as core.String?, |
| provisionedIops: json_['provisionedIops'] as core.String?, |
| provisionedThroughput: json_['provisionedThroughput'] as core.String?, |
| sizeGb: json_['sizeGb'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final diskType = this.diskType; |
| final provisionedIops = this.provisionedIops; |
| final provisionedThroughput = this.provisionedThroughput; |
| final sizeGb = this.sizeGb; |
| return { |
| 'diskType': ?diskType, |
| 'provisionedIops': ?provisionedIops, |
| 'provisionedThroughput': ?provisionedThroughput, |
| 'sizeGb': ?sizeGb, |
| }; |
| } |
| } |
| |
| /// Swap on the node's boot disk. |
| class BootDiskProfile { |
| /// Specifies the size of the swap space in gibibytes (GiB). |
| core.String? swapSizeGib; |
| |
| /// Specifies the size of the swap space as a percentage of the boot disk |
| /// size. |
| core.int? swapSizePercent; |
| |
| BootDiskProfile({this.swapSizeGib, this.swapSizePercent}); |
| |
| BootDiskProfile.fromJson(core.Map json_) |
| : this( |
| swapSizeGib: json_['swapSizeGib'] as core.String?, |
| swapSizePercent: json_['swapSizePercent'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final swapSizeGib = this.swapSizeGib; |
| final swapSizePercent = this.swapSizePercent; |
| return {'swapSizeGib': ?swapSizeGib, 'swapSizePercent': ?swapSizePercent}; |
| } |
| } |
| |
| /// CancelOperationRequest cancels a single operation. |
| class CancelOperationRequest { |
| /// The name (project, location, operation id) of the operation to cancel. |
| /// |
| /// Specified in the format `projects / * /locations / * /operations / * `. |
| core.String? name; |
| |
| /// The server-assigned `name` of the operation. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? operationId; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// operation resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| CancelOperationRequest({ |
| this.name, |
| this.operationId, |
| this.projectId, |
| this.zone, |
| }); |
| |
| CancelOperationRequest.fromJson(core.Map json_) |
| : this( |
| name: json_['name'] as core.String?, |
| operationId: json_['operationId'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final name = this.name; |
| final operationId = this.operationId; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'name': ?name, |
| 'operationId': ?operationId, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// CertificateAuthorityDomainConfig configures one or more fully qualified |
| /// domain names (FQDN) to a specific certificate. |
| class CertificateAuthorityDomainConfig { |
| /// List of fully qualified domain names (FQDN). |
| /// |
| /// Specifying port is supported. Wildcards are NOT supported. Examples: - |
| /// `my.customdomain.com` - `10.0.1.2:5000` |
| core.List<core.String>? fqdns; |
| |
| /// Secret Manager certificate configuration. |
| GCPSecretManagerCertificateConfig? gcpSecretManagerCertificateConfig; |
| |
| CertificateAuthorityDomainConfig({ |
| this.fqdns, |
| this.gcpSecretManagerCertificateConfig, |
| }); |
| |
| CertificateAuthorityDomainConfig.fromJson(core.Map json_) |
| : this( |
| fqdns: (json_['fqdns'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| gcpSecretManagerCertificateConfig: |
| json_.containsKey('gcpSecretManagerCertificateConfig') |
| ? GCPSecretManagerCertificateConfig.fromJson( |
| json_['gcpSecretManagerCertificateConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final fqdns = this.fqdns; |
| final gcpSecretManagerCertificateConfig = |
| this.gcpSecretManagerCertificateConfig; |
| return { |
| 'fqdns': ?fqdns, |
| 'gcpSecretManagerCertificateConfig': ?gcpSecretManagerCertificateConfig, |
| }; |
| } |
| } |
| |
| /// CertificateConfig configures certificate for the registry. |
| class CertificateConfig { |
| /// The URI configures a secret from |
| /// [Secret Manager](https://cloud.google.com/secret-manager) in the format |
| /// "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION" for global |
| /// secret or |
| /// "projects/$PROJECT_ID/locations/$REGION/secrets/$SECRET_NAME/versions/$VERSION" |
| /// for regional secret. |
| /// |
| /// Version can be fixed (e.g. "2") or "latest" |
| core.String? gcpSecretManagerSecretUri; |
| |
| CertificateConfig({this.gcpSecretManagerSecretUri}); |
| |
| CertificateConfig.fromJson(core.Map json_) |
| : this( |
| gcpSecretManagerSecretUri: |
| json_['gcpSecretManagerSecretUri'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final gcpSecretManagerSecretUri = this.gcpSecretManagerSecretUri; |
| return {'gcpSecretManagerSecretUri': ?gcpSecretManagerSecretUri}; |
| } |
| } |
| |
| /// CertificateConfigPair configures pairs of certificates, which is used for |
| /// client certificate and key pairs under a registry. |
| class CertificateConfigPair { |
| /// Cert configures the client certificate. |
| CertificateConfig? cert; |
| |
| /// Key configures the client private key. |
| /// |
| /// Optional. |
| CertificateConfig? key; |
| |
| CertificateConfigPair({this.cert, this.key}); |
| |
| CertificateConfigPair.fromJson(core.Map json_) |
| : this( |
| cert: json_.containsKey('cert') |
| ? CertificateConfig.fromJson( |
| json_['cert'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| key: json_.containsKey('key') |
| ? CertificateConfig.fromJson( |
| json_['key'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final cert = this.cert; |
| final key = this.key; |
| return {'cert': ?cert, 'key': ?key}; |
| } |
| } |
| |
| /// CheckAutopilotCompatibilityResponse has a list of compatibility issues. |
| class CheckAutopilotCompatibilityResponse { |
| /// The list of issues for the given operation. |
| core.List<AutopilotCompatibilityIssue>? issues; |
| |
| /// The summary of the autopilot compatibility response. |
| core.String? summary; |
| |
| CheckAutopilotCompatibilityResponse({this.issues, this.summary}); |
| |
| CheckAutopilotCompatibilityResponse.fromJson(core.Map json_) |
| : this( |
| issues: (json_['issues'] as core.List?) |
| ?.map( |
| (value) => AutopilotCompatibilityIssue.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| summary: json_['summary'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final issues = this.issues; |
| final summary = this.summary; |
| return {'issues': ?issues, 'summary': ?summary}; |
| } |
| } |
| |
| /// CidrBlock contains an optional name and one CIDR block. |
| class CidrBlock { |
| /// cidr_block must be specified in CIDR notation. |
| core.String? cidrBlock; |
| |
| /// display_name is an optional field for users to identify CIDR blocks. |
| core.String? displayName; |
| |
| CidrBlock({this.cidrBlock, this.displayName}); |
| |
| CidrBlock.fromJson(core.Map json_) |
| : this( |
| cidrBlock: json_['cidrBlock'] as core.String?, |
| displayName: json_['displayName'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final cidrBlock = this.cidrBlock; |
| final displayName = this.displayName; |
| return {'cidrBlock': ?cidrBlock, 'displayName': ?displayName}; |
| } |
| } |
| |
| /// Configuration for client certificates on the cluster. |
| class ClientCertificateConfig { |
| /// Issue a client certificate. |
| core.bool? issueClientCertificate; |
| |
| ClientCertificateConfig({this.issueClientCertificate}); |
| |
| ClientCertificateConfig.fromJson(core.Map json_) |
| : this( |
| issueClientCertificate: json_['issueClientCertificate'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final issueClientCertificate = this.issueClientCertificate; |
| return {'issueClientCertificate': ?issueClientCertificate}; |
| } |
| } |
| |
| /// Configuration options for the Cloud Run feature. |
| class CloudRunConfig { |
| /// Whether Cloud Run addon is enabled for this cluster. |
| core.bool? disabled; |
| |
| /// Which load balancer type is installed for Cloud Run. |
| /// Possible string values are: |
| /// - "LOAD_BALANCER_TYPE_UNSPECIFIED" : Load balancer type for Cloud Run is |
| /// unspecified. |
| /// - "LOAD_BALANCER_TYPE_EXTERNAL" : Install external load balancer for Cloud |
| /// Run. |
| /// - "LOAD_BALANCER_TYPE_INTERNAL" : Install internal load balancer for Cloud |
| /// Run. |
| core.String? loadBalancerType; |
| |
| CloudRunConfig({this.disabled, this.loadBalancerType}); |
| |
| CloudRunConfig.fromJson(core.Map json_) |
| : this( |
| disabled: json_['disabled'] as core.bool?, |
| loadBalancerType: json_['loadBalancerType'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disabled = this.disabled; |
| final loadBalancerType = this.loadBalancerType; |
| return {'disabled': ?disabled, 'loadBalancerType': ?loadBalancerType}; |
| } |
| } |
| |
| /// A Google Kubernetes Engine cluster. |
| class Cluster { |
| /// Configurations for the various addons available to run in the cluster. |
| AddonsConfig? addonsConfig; |
| |
| /// The list of user specified Kubernetes feature gates. |
| /// |
| /// Each string represents the activation status of a feature gate (e.g. |
| /// "featureX=true" or "featureX=false") |
| core.List<core.String>? alphaClusterFeatureGates; |
| |
| /// Configuration for limiting anonymous access to all endpoints except the |
| /// health checks. |
| AnonymousAuthenticationConfig? anonymousAuthenticationConfig; |
| |
| /// Configuration controlling RBAC group membership information. |
| AuthenticatorGroupsConfig? authenticatorGroupsConfig; |
| |
| /// Autopilot configuration for the cluster. |
| Autopilot? autopilot; |
| |
| /// Cluster-level autoscaling configuration. |
| ClusterAutoscaling? autoscaling; |
| |
| /// Configuration for Binary Authorization. |
| BinaryAuthorization? binaryAuthorization; |
| |
| /// The IP address range of the container pods in this cluster, in |
| /// [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) |
| /// notation (e.g. `10.96.0.0/14`). |
| /// |
| /// Leave blank to have one automatically chosen or specify a `/14` block in |
| /// `10.0.0.0/8`. |
| core.String? clusterIpv4Cidr; |
| |
| /// Deprecated: Compliance Posture is no longer supported. |
| /// |
| /// For more details, see |
| /// https://cloud.google.com/kubernetes-engine/docs/deprecations/posture-management-deprecation. |
| /// Enable/Disable Compliance Posture features for the cluster. |
| /// |
| /// Optional. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| CompliancePostureConfig? compliancePostureConfig; |
| |
| /// Which conditions caused the current cluster state. |
| core.List<StatusCondition>? conditions; |
| |
| /// Configuration of Confidential Nodes. |
| /// |
| /// All the nodes in the cluster will be Confidential VM once enabled. |
| ConfidentialNodes? confidentialNodes; |
| |
| /// Configuration for control plane egress control. |
| ControlPlaneEgress? controlPlaneEgress; |
| |
| /// Configuration for all cluster's control plane endpoints. |
| ControlPlaneEndpointsConfig? controlPlaneEndpointsConfig; |
| |
| /// Configuration for the fine-grained cost management feature. |
| CostManagementConfig? costManagementConfig; |
| |
| /// The time the cluster was created, in |
| /// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| /// |
| /// Output only. |
| core.String? createTime; |
| |
| /// The current software version of the master endpoint. |
| /// |
| /// Output only. |
| core.String? currentMasterVersion; |
| |
| /// The number of nodes currently in the cluster. |
| /// |
| /// Deprecated. Call Kubernetes API directly to retrieve node information. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.int? currentNodeCount; |
| |
| /// Deprecated, use |
| /// [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools) |
| /// instead. |
| /// |
| /// The current version of the node software components. If they are currently |
| /// at multiple versions because they're in the process of being upgraded, |
| /// this reflects the minimum version of all nodes. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? currentNodeVersion; |
| |
| /// Configuration of etcd encryption. |
| DatabaseEncryption? databaseEncryption; |
| |
| /// The default constraint on the maximum number of pods that can be run |
| /// simultaneously on a node in the node pool of this cluster. |
| /// |
| /// Only honored if cluster created with IP Alias support. |
| MaxPodsConstraint? defaultMaxPodsConstraint; |
| |
| /// An optional description of this cluster. |
| core.String? description; |
| |
| /// Beta APIs Config |
| K8sBetaAPIConfig? enableK8sBetaApis; |
| |
| /// Kubernetes alpha features are enabled on this cluster. |
| /// |
| /// This includes alpha API groups (e.g. v1alpha1) and features that may not |
| /// be production ready in the kubernetes version of the master and nodes. The |
| /// cluster has no SLA for uptime and master/node upgrades are disabled. Alpha |
| /// enabled clusters are automatically deleted thirty days after creation. |
| core.bool? enableKubernetesAlpha; |
| |
| /// Enable the ability to use Cloud TPUs in this cluster. |
| /// |
| /// This field is deprecated due to the deprecation of 2VM TPU. The end of |
| /// life date for 2VM TPU is 2025-04-25. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.bool? enableTpu; |
| |
| /// The IP address of this cluster's master endpoint. |
| /// |
| /// The endpoint can be accessed from the internet at |
| /// `https://username:password@endpoint/`. See the `masterAuth` property of |
| /// this resource for username and password information. |
| /// |
| /// Output only. |
| core.String? endpoint; |
| |
| /// GKE Enterprise Configuration. |
| /// |
| /// Deprecated: GKE Enterprise features are now available without an |
| /// Enterprise tier. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| EnterpriseConfig? enterpriseConfig; |
| |
| /// This checksum is computed by the server based on the value of cluster |
| /// fields, and may be sent on update requests to ensure the client has an |
| /// up-to-date value before proceeding. |
| core.String? etag; |
| |
| /// The time the cluster will be automatically deleted in |
| /// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| /// |
| /// Output only. |
| core.String? expireTime; |
| |
| /// Fleet information for the cluster. |
| Fleet? fleet; |
| |
| /// Configuration for GKE auto upgrades. |
| GkeAutoUpgradeConfig? gkeAutoUpgradeConfig; |
| |
| /// Unique id for the cluster. |
| /// |
| /// Output only. |
| core.String? id; |
| |
| /// Configuration for Identity Service component. |
| IdentityServiceConfig? identityServiceConfig; |
| |
| /// The initial Kubernetes version for this cluster. |
| /// |
| /// Valid versions are those found in validMasterVersions returned by |
| /// getServerConfig. The version can be upgraded over time; such upgrades are |
| /// reflected in currentMasterVersion and currentNodeVersion. Users may |
| /// specify either explicit versions offered by Kubernetes Engine or version |
| /// aliases, which have the following behavior: - "latest": picks the highest |
| /// valid Kubernetes version - "1.X": picks the highest valid patch+gke.N |
| /// patch in the 1.X version - "1.X.Y": picks the highest valid gke.N patch in |
| /// the 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - |
| /// "","-": picks the default Kubernetes version |
| core.String? initialClusterVersion; |
| |
| /// The number of nodes to create in this cluster. |
| /// |
| /// You must ensure that your Compute Engine |
| /// [resource quota](https://cloud.google.com/compute/quotas) is sufficient |
| /// for this number of instances. You must also have available firewall and |
| /// routes quota. For requests, this field should only be used in lieu of a |
| /// "node_pool" object, since this configuration (along with the |
| /// "node_config") will be used to create a "NodePool" object with an |
| /// auto-generated name. Do not use this and a node_pool at the same time. |
| /// This field is deprecated, use node_pool.initial_node_count instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.int? initialNodeCount; |
| |
| /// Use node_pools.instance_group_urls. |
| /// |
| /// Output only. Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.List<core.String>? instanceGroupUrls; |
| |
| /// Configuration for cluster IP allocation. |
| IPAllocationPolicy? ipAllocationPolicy; |
| |
| /// The fingerprint of the set of labels for this cluster. |
| core.String? labelFingerprint; |
| |
| /// Configuration for the legacy ABAC authorization mode. |
| LegacyAbac? legacyAbac; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) |
| /// or |
| /// [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) |
| /// in which the cluster resides. |
| /// |
| /// Output only. |
| core.String? location; |
| |
| /// The list of Google Compute Engine |
| /// [zones](https://cloud.google.com/compute/docs/zones#available) in which |
| /// the cluster's nodes should be located. |
| /// |
| /// This field provides a default value if |
| /// [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) |
| /// are not specified during node pool creation. Warning: changing cluster |
| /// locations will update the |
| /// [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) |
| /// of all node pools and will result in nodes being added and/or removed. |
| core.List<core.String>? locations; |
| |
| /// Logging configuration for the cluster. |
| LoggingConfig? loggingConfig; |
| |
| /// The logging service the cluster should use to write logs. |
| /// |
| /// Currently available options: * `logging.googleapis.com/kubernetes` - The |
| /// Cloud Logging service with a Kubernetes-native resource model * |
| /// `logging.googleapis.com` - The legacy Cloud Logging service (no longer |
| /// available as of GKE 1.15). * `none` - no logs will be exported from the |
| /// cluster. If left as an empty string,`logging.googleapis.com/kubernetes` |
| /// will be used for GKE 1.14+ or `logging.googleapis.com` for earlier |
| /// versions. |
| core.String? loggingService; |
| |
| /// Configure the maintenance policy for this cluster. |
| MaintenancePolicy? maintenancePolicy; |
| |
| /// Configuration for Managed Machine Learning Diagnostics. |
| ManagedMachineLearningDiagnosticsConfig? |
| managedMachineLearningDiagnosticsConfig; |
| |
| /// Configuration for Managed OpenTelemetry pipeline. |
| ManagedOpenTelemetryConfig? managedOpentelemetryConfig; |
| |
| /// The authentication information for accessing the master endpoint. |
| /// |
| /// If unspecified, the defaults are used: For clusters before v1.12, if |
| /// master_auth is unspecified, `username` will be set to "admin", a random |
| /// password will be generated, and a client certificate will be issued. |
| MasterAuth? masterAuth; |
| |
| /// The configuration options for master authorized networks feature. |
| /// |
| /// Deprecated: Use |
| /// ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config |
| /// instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| MasterAuthorizedNetworksConfig? masterAuthorizedNetworksConfig; |
| |
| /// Configuration for issuance of mTLS keys and certificates to Kubernetes |
| /// pods. |
| MeshCertificates? meshCertificates; |
| |
| /// Monitoring configuration for the cluster. |
| MonitoringConfig? monitoringConfig; |
| |
| /// The monitoring service the cluster should use to write metrics. |
| /// |
| /// Currently available options: * `monitoring.googleapis.com/kubernetes` - |
| /// The Cloud Monitoring service with a Kubernetes-native resource model * |
| /// `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no |
| /// longer available as of GKE 1.15). * `none` - No metrics will be exported |
| /// from the cluster. If left as an empty |
| /// string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ |
| /// or `monitoring.googleapis.com` for earlier versions. |
| core.String? monitoringService; |
| |
| /// The name of this cluster. |
| /// |
| /// The name must be unique within this project and location (e.g. zone or |
| /// region), and can be up to 40 characters with the following restrictions: * |
| /// Lowercase letters, numbers, and hyphens only. * Must start with a letter. |
| /// * Must end with a number or a letter. |
| core.String? name; |
| |
| /// The name of the Google Compute Engine |
| /// [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) |
| /// to which the cluster is connected. |
| /// |
| /// If left unspecified, the `default` network will be used. |
| core.String? network; |
| |
| /// Configuration for cluster networking. |
| NetworkConfig? networkConfig; |
| |
| /// Configuration options for the NetworkPolicy feature. |
| NetworkPolicy? networkPolicy; |
| |
| /// Parameters used in creating the cluster's nodes. |
| /// |
| /// For requests, this field should only be used in lieu of a "node_pool" |
| /// object, since this configuration (along with the "initial_node_count") |
| /// will be used to create a "NodePool" object with an auto-generated name. Do |
| /// not use this and a node_pool at the same time. For responses, this field |
| /// will be populated with the node configuration of the first node pool. (For |
| /// configuration of each node pool, see `node_pool.config`) If unspecified, |
| /// the defaults are used. This field is deprecated, use node_pool.config |
| /// instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| NodeConfig? nodeConfig; |
| |
| /// The size of the address space on each node for hosting containers. |
| /// |
| /// This is provisioned from within the `container_ipv4_cidr` range. This |
| /// field will only be set when cluster is in route-based network mode. |
| /// |
| /// Output only. |
| core.int? nodeIpv4CidrSize; |
| |
| /// Node pool configs that apply to all auto-provisioned node pools in |
| /// autopilot clusters and node auto-provisioning enabled clusters. |
| NodePoolAutoConfig? nodePoolAutoConfig; |
| |
| /// Default NodePool settings for the entire cluster. |
| /// |
| /// These settings are overridden if specified on the specific NodePool |
| /// object. |
| NodePoolDefaults? nodePoolDefaults; |
| |
| /// The node pools associated with this cluster. |
| /// |
| /// This field should not be set if "node_config" or "initial_node_count" are |
| /// specified. |
| core.List<NodePool>? nodePools; |
| |
| /// Notification configuration of the cluster. |
| NotificationConfig? notificationConfig; |
| |
| /// The configuration of the parent product of the cluster. |
| /// |
| /// This field is used by Google internal products that are built on top of |
| /// the GKE cluster and take the ownership of the cluster. |
| ParentProductConfig? parentProductConfig; |
| |
| /// The config for pod autoscaling. |
| PodAutoscaling? podAutoscaling; |
| |
| /// Configuration for private cluster. |
| PrivateClusterConfig? privateClusterConfig; |
| |
| /// RBACBindingConfig allows user to restrict ClusterRoleBindings an |
| /// RoleBindings that can be created. |
| RBACBindingConfig? rbacBindingConfig; |
| |
| /// Release channel configuration. |
| /// |
| /// If left unspecified on cluster creation and a version is specified, the |
| /// cluster is enrolled in the most mature release channel where the version |
| /// is available (first checking STABLE, then REGULAR, and finally RAPID). |
| /// Otherwise, if no release channel configuration and no version is |
| /// specified, the cluster is enrolled in the REGULAR channel with its default |
| /// version. |
| ReleaseChannel? releaseChannel; |
| |
| /// The resource labels for the cluster to use to annotate any related Google |
| /// Compute Engine resources. |
| core.Map<core.String, core.String>? resourceLabels; |
| |
| /// Configuration for exporting resource usages. |
| /// |
| /// Resource usage export is disabled when this config is unspecified. |
| ResourceUsageExportConfig? resourceUsageExportConfig; |
| |
| /// Reserved for future use. |
| /// |
| /// Output only. |
| core.bool? satisfiesPzi; |
| |
| /// Reserved for future use. |
| /// |
| /// Output only. |
| core.bool? satisfiesPzs; |
| |
| /// Configuration for scheduled upgrades. |
| /// |
| /// Optional. |
| ScheduleUpgradeConfig? scheduleUpgradeConfig; |
| |
| /// Secret CSI driver configuration. |
| SecretManagerConfig? secretManagerConfig; |
| |
| /// Configuration for sync Secret Manager secrets as k8s secrets. |
| SecretSyncConfig? secretSyncConfig; |
| |
| /// Enable/Disable Security Posture API features for the cluster. |
| /// |
| /// Optional. |
| SecurityPostureConfig? securityPostureConfig; |
| |
| /// Server-defined URL for the resource. |
| /// |
| /// Output only. |
| core.String? selfLink; |
| |
| /// The IP address range of the Kubernetes services in this cluster, in |
| /// [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) |
| /// notation (e.g. `1.2.3.4/29`). |
| /// |
| /// Service addresses are typically put in the last `/16` from the container |
| /// CIDR. |
| /// |
| /// Output only. |
| core.String? servicesIpv4Cidr; |
| |
| /// Shielded Nodes configuration. |
| ShieldedNodes? shieldedNodes; |
| |
| /// The current status of this cluster. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : Not set. |
| /// - "PROVISIONING" : The PROVISIONING state indicates the cluster is being |
| /// created. |
| /// - "RUNNING" : The RUNNING state indicates the cluster has been created and |
| /// is fully usable. |
| /// - "RECONCILING" : The RECONCILING state indicates that some work is |
| /// actively being done on the cluster, such as upgrading the master or node |
| /// software. Details can be found in the `statusMessage` field. |
| /// - "STOPPING" : The STOPPING state indicates the cluster is being deleted. |
| /// - "ERROR" : The ERROR state indicates the cluster is unusable. It will be |
| /// automatically deleted. Details can be found in the `statusMessage` field. |
| /// - "DEGRADED" : The DEGRADED state indicates the cluster requires user |
| /// action to restore full functionality. Details can be found in the |
| /// `statusMessage` field. |
| core.String? status; |
| |
| /// Use conditions instead. |
| /// |
| /// Additional information about the current status of this cluster, if |
| /// available. |
| /// |
| /// Output only. Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? statusMessage; |
| |
| /// The name of the Google Compute Engine |
| /// [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which |
| /// the cluster is connected. |
| core.String? subnetwork; |
| |
| /// The IP address range of the Cloud TPUs in this cluster, in |
| /// [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) |
| /// notation (e.g. `1.2.3.4/29`). |
| /// |
| /// This field is deprecated due to the deprecation of 2VM TPU. The end of |
| /// life date for 2VM TPU is 2025-04-25. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? tpuIpv4CidrBlock; |
| |
| /// The Custom keys configuration for the cluster. |
| UserManagedKeysConfig? userManagedKeysConfig; |
| |
| /// Cluster-level Vertical Pod Autoscaling configuration. |
| VerticalPodAutoscaling? verticalPodAutoscaling; |
| |
| /// Configuration for the use of Kubernetes Service Accounts in IAM policies. |
| WorkloadIdentityConfig? workloadIdentityConfig; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field is deprecated, use location instead. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| Cluster({ |
| this.addonsConfig, |
| this.alphaClusterFeatureGates, |
| this.anonymousAuthenticationConfig, |
| this.authenticatorGroupsConfig, |
| this.autopilot, |
| this.autoscaling, |
| this.binaryAuthorization, |
| this.clusterIpv4Cidr, |
| this.compliancePostureConfig, |
| this.conditions, |
| this.confidentialNodes, |
| this.controlPlaneEgress, |
| this.controlPlaneEndpointsConfig, |
| this.costManagementConfig, |
| this.createTime, |
| this.currentMasterVersion, |
| this.currentNodeCount, |
| this.currentNodeVersion, |
| this.databaseEncryption, |
| this.defaultMaxPodsConstraint, |
| this.description, |
| this.enableK8sBetaApis, |
| this.enableKubernetesAlpha, |
| this.enableTpu, |
| this.endpoint, |
| this.enterpriseConfig, |
| this.etag, |
| this.expireTime, |
| this.fleet, |
| this.gkeAutoUpgradeConfig, |
| this.id, |
| this.identityServiceConfig, |
| this.initialClusterVersion, |
| this.initialNodeCount, |
| this.instanceGroupUrls, |
| this.ipAllocationPolicy, |
| this.labelFingerprint, |
| this.legacyAbac, |
| this.location, |
| this.locations, |
| this.loggingConfig, |
| this.loggingService, |
| this.maintenancePolicy, |
| this.managedMachineLearningDiagnosticsConfig, |
| this.managedOpentelemetryConfig, |
| this.masterAuth, |
| this.masterAuthorizedNetworksConfig, |
| this.meshCertificates, |
| this.monitoringConfig, |
| this.monitoringService, |
| this.name, |
| this.network, |
| this.networkConfig, |
| this.networkPolicy, |
| this.nodeConfig, |
| this.nodeIpv4CidrSize, |
| this.nodePoolAutoConfig, |
| this.nodePoolDefaults, |
| this.nodePools, |
| this.notificationConfig, |
| this.parentProductConfig, |
| this.podAutoscaling, |
| this.privateClusterConfig, |
| this.rbacBindingConfig, |
| this.releaseChannel, |
| this.resourceLabels, |
| this.resourceUsageExportConfig, |
| this.satisfiesPzi, |
| this.satisfiesPzs, |
| this.scheduleUpgradeConfig, |
| this.secretManagerConfig, |
| this.secretSyncConfig, |
| this.securityPostureConfig, |
| this.selfLink, |
| this.servicesIpv4Cidr, |
| this.shieldedNodes, |
| this.status, |
| this.statusMessage, |
| this.subnetwork, |
| this.tpuIpv4CidrBlock, |
| this.userManagedKeysConfig, |
| this.verticalPodAutoscaling, |
| this.workloadIdentityConfig, |
| this.zone, |
| }); |
| |
| Cluster.fromJson(core.Map json_) |
| : this( |
| addonsConfig: json_.containsKey('addonsConfig') |
| ? AddonsConfig.fromJson( |
| json_['addonsConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| alphaClusterFeatureGates: |
| (json_['alphaClusterFeatureGates'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| anonymousAuthenticationConfig: |
| json_.containsKey('anonymousAuthenticationConfig') |
| ? AnonymousAuthenticationConfig.fromJson( |
| json_['anonymousAuthenticationConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| authenticatorGroupsConfig: |
| json_.containsKey('authenticatorGroupsConfig') |
| ? AuthenticatorGroupsConfig.fromJson( |
| json_['authenticatorGroupsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| autopilot: json_.containsKey('autopilot') |
| ? Autopilot.fromJson( |
| json_['autopilot'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| autoscaling: json_.containsKey('autoscaling') |
| ? ClusterAutoscaling.fromJson( |
| json_['autoscaling'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| binaryAuthorization: json_.containsKey('binaryAuthorization') |
| ? BinaryAuthorization.fromJson( |
| json_['binaryAuthorization'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| clusterIpv4Cidr: json_['clusterIpv4Cidr'] as core.String?, |
| compliancePostureConfig: json_.containsKey('compliancePostureConfig') |
| ? CompliancePostureConfig.fromJson( |
| json_['compliancePostureConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| conditions: (json_['conditions'] as core.List?) |
| ?.map( |
| (value) => StatusCondition.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| confidentialNodes: json_.containsKey('confidentialNodes') |
| ? ConfidentialNodes.fromJson( |
| json_['confidentialNodes'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| controlPlaneEgress: json_.containsKey('controlPlaneEgress') |
| ? ControlPlaneEgress.fromJson( |
| json_['controlPlaneEgress'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| controlPlaneEndpointsConfig: |
| json_.containsKey('controlPlaneEndpointsConfig') |
| ? ControlPlaneEndpointsConfig.fromJson( |
| json_['controlPlaneEndpointsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| costManagementConfig: json_.containsKey('costManagementConfig') |
| ? CostManagementConfig.fromJson( |
| json_['costManagementConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| createTime: json_['createTime'] as core.String?, |
| currentMasterVersion: json_['currentMasterVersion'] as core.String?, |
| currentNodeCount: json_['currentNodeCount'] as core.int?, |
| currentNodeVersion: json_['currentNodeVersion'] as core.String?, |
| databaseEncryption: json_.containsKey('databaseEncryption') |
| ? DatabaseEncryption.fromJson( |
| json_['databaseEncryption'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| defaultMaxPodsConstraint: json_.containsKey('defaultMaxPodsConstraint') |
| ? MaxPodsConstraint.fromJson( |
| json_['defaultMaxPodsConstraint'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| description: json_['description'] as core.String?, |
| enableK8sBetaApis: json_.containsKey('enableK8sBetaApis') |
| ? K8sBetaAPIConfig.fromJson( |
| json_['enableK8sBetaApis'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enableKubernetesAlpha: json_['enableKubernetesAlpha'] as core.bool?, |
| enableTpu: json_['enableTpu'] as core.bool?, |
| endpoint: json_['endpoint'] as core.String?, |
| enterpriseConfig: json_.containsKey('enterpriseConfig') |
| ? EnterpriseConfig.fromJson( |
| json_['enterpriseConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| etag: json_['etag'] as core.String?, |
| expireTime: json_['expireTime'] as core.String?, |
| fleet: json_.containsKey('fleet') |
| ? Fleet.fromJson( |
| json_['fleet'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gkeAutoUpgradeConfig: json_.containsKey('gkeAutoUpgradeConfig') |
| ? GkeAutoUpgradeConfig.fromJson( |
| json_['gkeAutoUpgradeConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| id: json_['id'] as core.String?, |
| identityServiceConfig: json_.containsKey('identityServiceConfig') |
| ? IdentityServiceConfig.fromJson( |
| json_['identityServiceConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| initialClusterVersion: json_['initialClusterVersion'] as core.String?, |
| initialNodeCount: json_['initialNodeCount'] as core.int?, |
| instanceGroupUrls: (json_['instanceGroupUrls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ipAllocationPolicy: json_.containsKey('ipAllocationPolicy') |
| ? IPAllocationPolicy.fromJson( |
| json_['ipAllocationPolicy'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| labelFingerprint: json_['labelFingerprint'] as core.String?, |
| legacyAbac: json_.containsKey('legacyAbac') |
| ? LegacyAbac.fromJson( |
| json_['legacyAbac'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| location: json_['location'] as core.String?, |
| locations: (json_['locations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| loggingConfig: json_.containsKey('loggingConfig') |
| ? LoggingConfig.fromJson( |
| json_['loggingConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| loggingService: json_['loggingService'] as core.String?, |
| maintenancePolicy: json_.containsKey('maintenancePolicy') |
| ? MaintenancePolicy.fromJson( |
| json_['maintenancePolicy'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| managedMachineLearningDiagnosticsConfig: |
| json_.containsKey('managedMachineLearningDiagnosticsConfig') |
| ? ManagedMachineLearningDiagnosticsConfig.fromJson( |
| json_['managedMachineLearningDiagnosticsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| managedOpentelemetryConfig: |
| json_.containsKey('managedOpentelemetryConfig') |
| ? ManagedOpenTelemetryConfig.fromJson( |
| json_['managedOpentelemetryConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| masterAuth: json_.containsKey('masterAuth') |
| ? MasterAuth.fromJson( |
| json_['masterAuth'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| masterAuthorizedNetworksConfig: |
| json_.containsKey('masterAuthorizedNetworksConfig') |
| ? MasterAuthorizedNetworksConfig.fromJson( |
| json_['masterAuthorizedNetworksConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| meshCertificates: json_.containsKey('meshCertificates') |
| ? MeshCertificates.fromJson( |
| json_['meshCertificates'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| monitoringConfig: json_.containsKey('monitoringConfig') |
| ? MonitoringConfig.fromJson( |
| json_['monitoringConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| monitoringService: json_['monitoringService'] as core.String?, |
| name: json_['name'] as core.String?, |
| network: json_['network'] as core.String?, |
| networkConfig: json_.containsKey('networkConfig') |
| ? NetworkConfig.fromJson( |
| json_['networkConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| networkPolicy: json_.containsKey('networkPolicy') |
| ? NetworkPolicy.fromJson( |
| json_['networkPolicy'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodeConfig: json_.containsKey('nodeConfig') |
| ? NodeConfig.fromJson( |
| json_['nodeConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodeIpv4CidrSize: json_['nodeIpv4CidrSize'] as core.int?, |
| nodePoolAutoConfig: json_.containsKey('nodePoolAutoConfig') |
| ? NodePoolAutoConfig.fromJson( |
| json_['nodePoolAutoConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodePoolDefaults: json_.containsKey('nodePoolDefaults') |
| ? NodePoolDefaults.fromJson( |
| json_['nodePoolDefaults'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodePools: (json_['nodePools'] as core.List?) |
| ?.map( |
| (value) => NodePool.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| notificationConfig: json_.containsKey('notificationConfig') |
| ? NotificationConfig.fromJson( |
| json_['notificationConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| parentProductConfig: json_.containsKey('parentProductConfig') |
| ? ParentProductConfig.fromJson( |
| json_['parentProductConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| podAutoscaling: json_.containsKey('podAutoscaling') |
| ? PodAutoscaling.fromJson( |
| json_['podAutoscaling'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| privateClusterConfig: json_.containsKey('privateClusterConfig') |
| ? PrivateClusterConfig.fromJson( |
| json_['privateClusterConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| rbacBindingConfig: json_.containsKey('rbacBindingConfig') |
| ? RBACBindingConfig.fromJson( |
| json_['rbacBindingConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| releaseChannel: json_.containsKey('releaseChannel') |
| ? ReleaseChannel.fromJson( |
| json_['releaseChannel'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| resourceLabels: |
| (json_['resourceLabels'] as core.Map<core.String, core.dynamic>?) |
| ?.map((key, value) => core.MapEntry(key, value as core.String)), |
| resourceUsageExportConfig: |
| json_.containsKey('resourceUsageExportConfig') |
| ? ResourceUsageExportConfig.fromJson( |
| json_['resourceUsageExportConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| satisfiesPzi: json_['satisfiesPzi'] as core.bool?, |
| satisfiesPzs: json_['satisfiesPzs'] as core.bool?, |
| scheduleUpgradeConfig: json_.containsKey('scheduleUpgradeConfig') |
| ? ScheduleUpgradeConfig.fromJson( |
| json_['scheduleUpgradeConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| secretManagerConfig: json_.containsKey('secretManagerConfig') |
| ? SecretManagerConfig.fromJson( |
| json_['secretManagerConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| secretSyncConfig: json_.containsKey('secretSyncConfig') |
| ? SecretSyncConfig.fromJson( |
| json_['secretSyncConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| securityPostureConfig: json_.containsKey('securityPostureConfig') |
| ? SecurityPostureConfig.fromJson( |
| json_['securityPostureConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| selfLink: json_['selfLink'] as core.String?, |
| servicesIpv4Cidr: json_['servicesIpv4Cidr'] as core.String?, |
| shieldedNodes: json_.containsKey('shieldedNodes') |
| ? ShieldedNodes.fromJson( |
| json_['shieldedNodes'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| status: json_['status'] as core.String?, |
| statusMessage: json_['statusMessage'] as core.String?, |
| subnetwork: json_['subnetwork'] as core.String?, |
| tpuIpv4CidrBlock: json_['tpuIpv4CidrBlock'] as core.String?, |
| userManagedKeysConfig: json_.containsKey('userManagedKeysConfig') |
| ? UserManagedKeysConfig.fromJson( |
| json_['userManagedKeysConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| verticalPodAutoscaling: json_.containsKey('verticalPodAutoscaling') |
| ? VerticalPodAutoscaling.fromJson( |
| json_['verticalPodAutoscaling'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| workloadIdentityConfig: json_.containsKey('workloadIdentityConfig') |
| ? WorkloadIdentityConfig.fromJson( |
| json_['workloadIdentityConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final addonsConfig = this.addonsConfig; |
| final alphaClusterFeatureGates = this.alphaClusterFeatureGates; |
| final anonymousAuthenticationConfig = this.anonymousAuthenticationConfig; |
| final authenticatorGroupsConfig = this.authenticatorGroupsConfig; |
| final autopilot = this.autopilot; |
| final autoscaling = this.autoscaling; |
| final binaryAuthorization = this.binaryAuthorization; |
| final clusterIpv4Cidr = this.clusterIpv4Cidr; |
| final compliancePostureConfig = this.compliancePostureConfig; |
| final conditions = this.conditions; |
| final confidentialNodes = this.confidentialNodes; |
| final controlPlaneEgress = this.controlPlaneEgress; |
| final controlPlaneEndpointsConfig = this.controlPlaneEndpointsConfig; |
| final costManagementConfig = this.costManagementConfig; |
| final createTime = this.createTime; |
| final currentMasterVersion = this.currentMasterVersion; |
| final currentNodeCount = this.currentNodeCount; |
| final currentNodeVersion = this.currentNodeVersion; |
| final databaseEncryption = this.databaseEncryption; |
| final defaultMaxPodsConstraint = this.defaultMaxPodsConstraint; |
| final description = this.description; |
| final enableK8sBetaApis = this.enableK8sBetaApis; |
| final enableKubernetesAlpha = this.enableKubernetesAlpha; |
| final enableTpu = this.enableTpu; |
| final endpoint = this.endpoint; |
| final enterpriseConfig = this.enterpriseConfig; |
| final etag = this.etag; |
| final expireTime = this.expireTime; |
| final fleet = this.fleet; |
| final gkeAutoUpgradeConfig = this.gkeAutoUpgradeConfig; |
| final id = this.id; |
| final identityServiceConfig = this.identityServiceConfig; |
| final initialClusterVersion = this.initialClusterVersion; |
| final initialNodeCount = this.initialNodeCount; |
| final instanceGroupUrls = this.instanceGroupUrls; |
| final ipAllocationPolicy = this.ipAllocationPolicy; |
| final labelFingerprint = this.labelFingerprint; |
| final legacyAbac = this.legacyAbac; |
| final location = this.location; |
| final locations = this.locations; |
| final loggingConfig = this.loggingConfig; |
| final loggingService = this.loggingService; |
| final maintenancePolicy = this.maintenancePolicy; |
| final managedMachineLearningDiagnosticsConfig = |
| this.managedMachineLearningDiagnosticsConfig; |
| final managedOpentelemetryConfig = this.managedOpentelemetryConfig; |
| final masterAuth = this.masterAuth; |
| final masterAuthorizedNetworksConfig = this.masterAuthorizedNetworksConfig; |
| final meshCertificates = this.meshCertificates; |
| final monitoringConfig = this.monitoringConfig; |
| final monitoringService = this.monitoringService; |
| final name = this.name; |
| final network = this.network; |
| final networkConfig = this.networkConfig; |
| final networkPolicy = this.networkPolicy; |
| final nodeConfig = this.nodeConfig; |
| final nodeIpv4CidrSize = this.nodeIpv4CidrSize; |
| final nodePoolAutoConfig = this.nodePoolAutoConfig; |
| final nodePoolDefaults = this.nodePoolDefaults; |
| final nodePools = this.nodePools; |
| final notificationConfig = this.notificationConfig; |
| final parentProductConfig = this.parentProductConfig; |
| final podAutoscaling = this.podAutoscaling; |
| final privateClusterConfig = this.privateClusterConfig; |
| final rbacBindingConfig = this.rbacBindingConfig; |
| final releaseChannel = this.releaseChannel; |
| final resourceLabels = this.resourceLabels; |
| final resourceUsageExportConfig = this.resourceUsageExportConfig; |
| final satisfiesPzi = this.satisfiesPzi; |
| final satisfiesPzs = this.satisfiesPzs; |
| final scheduleUpgradeConfig = this.scheduleUpgradeConfig; |
| final secretManagerConfig = this.secretManagerConfig; |
| final secretSyncConfig = this.secretSyncConfig; |
| final securityPostureConfig = this.securityPostureConfig; |
| final selfLink = this.selfLink; |
| final servicesIpv4Cidr = this.servicesIpv4Cidr; |
| final shieldedNodes = this.shieldedNodes; |
| final status = this.status; |
| final statusMessage = this.statusMessage; |
| final subnetwork = this.subnetwork; |
| final tpuIpv4CidrBlock = this.tpuIpv4CidrBlock; |
| final userManagedKeysConfig = this.userManagedKeysConfig; |
| final verticalPodAutoscaling = this.verticalPodAutoscaling; |
| final workloadIdentityConfig = this.workloadIdentityConfig; |
| final zone = this.zone; |
| return { |
| 'addonsConfig': ?addonsConfig, |
| 'alphaClusterFeatureGates': ?alphaClusterFeatureGates, |
| 'anonymousAuthenticationConfig': ?anonymousAuthenticationConfig, |
| 'authenticatorGroupsConfig': ?authenticatorGroupsConfig, |
| 'autopilot': ?autopilot, |
| 'autoscaling': ?autoscaling, |
| 'binaryAuthorization': ?binaryAuthorization, |
| 'clusterIpv4Cidr': ?clusterIpv4Cidr, |
| 'compliancePostureConfig': ?compliancePostureConfig, |
| 'conditions': ?conditions, |
| 'confidentialNodes': ?confidentialNodes, |
| 'controlPlaneEgress': ?controlPlaneEgress, |
| 'controlPlaneEndpointsConfig': ?controlPlaneEndpointsConfig, |
| 'costManagementConfig': ?costManagementConfig, |
| 'createTime': ?createTime, |
| 'currentMasterVersion': ?currentMasterVersion, |
| 'currentNodeCount': ?currentNodeCount, |
| 'currentNodeVersion': ?currentNodeVersion, |
| 'databaseEncryption': ?databaseEncryption, |
| 'defaultMaxPodsConstraint': ?defaultMaxPodsConstraint, |
| 'description': ?description, |
| 'enableK8sBetaApis': ?enableK8sBetaApis, |
| 'enableKubernetesAlpha': ?enableKubernetesAlpha, |
| 'enableTpu': ?enableTpu, |
| 'endpoint': ?endpoint, |
| 'enterpriseConfig': ?enterpriseConfig, |
| 'etag': ?etag, |
| 'expireTime': ?expireTime, |
| 'fleet': ?fleet, |
| 'gkeAutoUpgradeConfig': ?gkeAutoUpgradeConfig, |
| 'id': ?id, |
| 'identityServiceConfig': ?identityServiceConfig, |
| 'initialClusterVersion': ?initialClusterVersion, |
| 'initialNodeCount': ?initialNodeCount, |
| 'instanceGroupUrls': ?instanceGroupUrls, |
| 'ipAllocationPolicy': ?ipAllocationPolicy, |
| 'labelFingerprint': ?labelFingerprint, |
| 'legacyAbac': ?legacyAbac, |
| 'location': ?location, |
| 'locations': ?locations, |
| 'loggingConfig': ?loggingConfig, |
| 'loggingService': ?loggingService, |
| 'maintenancePolicy': ?maintenancePolicy, |
| 'managedMachineLearningDiagnosticsConfig': |
| ?managedMachineLearningDiagnosticsConfig, |
| 'managedOpentelemetryConfig': ?managedOpentelemetryConfig, |
| 'masterAuth': ?masterAuth, |
| 'masterAuthorizedNetworksConfig': ?masterAuthorizedNetworksConfig, |
| 'meshCertificates': ?meshCertificates, |
| 'monitoringConfig': ?monitoringConfig, |
| 'monitoringService': ?monitoringService, |
| 'name': ?name, |
| 'network': ?network, |
| 'networkConfig': ?networkConfig, |
| 'networkPolicy': ?networkPolicy, |
| 'nodeConfig': ?nodeConfig, |
| 'nodeIpv4CidrSize': ?nodeIpv4CidrSize, |
| 'nodePoolAutoConfig': ?nodePoolAutoConfig, |
| 'nodePoolDefaults': ?nodePoolDefaults, |
| 'nodePools': ?nodePools, |
| 'notificationConfig': ?notificationConfig, |
| 'parentProductConfig': ?parentProductConfig, |
| 'podAutoscaling': ?podAutoscaling, |
| 'privateClusterConfig': ?privateClusterConfig, |
| 'rbacBindingConfig': ?rbacBindingConfig, |
| 'releaseChannel': ?releaseChannel, |
| 'resourceLabels': ?resourceLabels, |
| 'resourceUsageExportConfig': ?resourceUsageExportConfig, |
| 'satisfiesPzi': ?satisfiesPzi, |
| 'satisfiesPzs': ?satisfiesPzs, |
| 'scheduleUpgradeConfig': ?scheduleUpgradeConfig, |
| 'secretManagerConfig': ?secretManagerConfig, |
| 'secretSyncConfig': ?secretSyncConfig, |
| 'securityPostureConfig': ?securityPostureConfig, |
| 'selfLink': ?selfLink, |
| 'servicesIpv4Cidr': ?servicesIpv4Cidr, |
| 'shieldedNodes': ?shieldedNodes, |
| 'status': ?status, |
| 'statusMessage': ?statusMessage, |
| 'subnetwork': ?subnetwork, |
| 'tpuIpv4CidrBlock': ?tpuIpv4CidrBlock, |
| 'userManagedKeysConfig': ?userManagedKeysConfig, |
| 'verticalPodAutoscaling': ?verticalPodAutoscaling, |
| 'workloadIdentityConfig': ?workloadIdentityConfig, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// ClusterAutoscaling contains global, per-cluster information required by |
| /// Cluster Autoscaler to automatically adjust the size of the cluster and |
| /// create/delete node pools based on the current needs. |
| class ClusterAutoscaling { |
| /// Autopilot general profile for the cluster, which defines the configuration |
| /// for the cluster. |
| /// Possible string values are: |
| /// - "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED" : Use default configuration. |
| /// - "NO_PERFORMANCE" : Avoid extra IP consumption. |
| /// - "NONE" : Use default configuration. |
| core.String? autopilotGeneralProfile; |
| |
| /// The list of Google Compute Engine |
| /// [zones](https://cloud.google.com/compute/docs/zones#available) in which |
| /// the NodePool's nodes can be created by NAP. |
| core.List<core.String>? autoprovisioningLocations; |
| |
| /// AutoprovisioningNodePoolDefaults contains defaults for a node pool created |
| /// by NAP. |
| AutoprovisioningNodePoolDefaults? autoprovisioningNodePoolDefaults; |
| |
| /// Defines autoscaling behaviour. |
| /// Possible string values are: |
| /// - "PROFILE_UNSPECIFIED" : No change to autoscaling configuration. |
| /// - "OPTIMIZE_UTILIZATION" : Prioritize optimizing utilization of resources. |
| /// - "BALANCED" : Use default (balanced) autoscaling configuration. |
| core.String? autoscalingProfile; |
| |
| /// Default compute class is a configuration for default compute class. |
| DefaultComputeClassConfig? defaultComputeClassConfig; |
| |
| /// Enables automatic node pool creation and deletion. |
| core.bool? enableNodeAutoprovisioning; |
| |
| /// Contains global constraints regarding minimum and maximum amount of |
| /// resources in the cluster. |
| core.List<ResourceLimit>? resourceLimits; |
| |
| ClusterAutoscaling({ |
| this.autopilotGeneralProfile, |
| this.autoprovisioningLocations, |
| this.autoprovisioningNodePoolDefaults, |
| this.autoscalingProfile, |
| this.defaultComputeClassConfig, |
| this.enableNodeAutoprovisioning, |
| this.resourceLimits, |
| }); |
| |
| ClusterAutoscaling.fromJson(core.Map json_) |
| : this( |
| autopilotGeneralProfile: |
| json_['autopilotGeneralProfile'] as core.String?, |
| autoprovisioningLocations: |
| (json_['autoprovisioningLocations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| autoprovisioningNodePoolDefaults: |
| json_.containsKey('autoprovisioningNodePoolDefaults') |
| ? AutoprovisioningNodePoolDefaults.fromJson( |
| json_['autoprovisioningNodePoolDefaults'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| autoscalingProfile: json_['autoscalingProfile'] as core.String?, |
| defaultComputeClassConfig: |
| json_.containsKey('defaultComputeClassConfig') |
| ? DefaultComputeClassConfig.fromJson( |
| json_['defaultComputeClassConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enableNodeAutoprovisioning: |
| json_['enableNodeAutoprovisioning'] as core.bool?, |
| resourceLimits: (json_['resourceLimits'] as core.List?) |
| ?.map( |
| (value) => ResourceLimit.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autopilotGeneralProfile = this.autopilotGeneralProfile; |
| final autoprovisioningLocations = this.autoprovisioningLocations; |
| final autoprovisioningNodePoolDefaults = |
| this.autoprovisioningNodePoolDefaults; |
| final autoscalingProfile = this.autoscalingProfile; |
| final defaultComputeClassConfig = this.defaultComputeClassConfig; |
| final enableNodeAutoprovisioning = this.enableNodeAutoprovisioning; |
| final resourceLimits = this.resourceLimits; |
| return { |
| 'autopilotGeneralProfile': ?autopilotGeneralProfile, |
| 'autoprovisioningLocations': ?autoprovisioningLocations, |
| 'autoprovisioningNodePoolDefaults': ?autoprovisioningNodePoolDefaults, |
| 'autoscalingProfile': ?autoscalingProfile, |
| 'defaultComputeClassConfig': ?defaultComputeClassConfig, |
| 'enableNodeAutoprovisioning': ?enableNodeAutoprovisioning, |
| 'resourceLimits': ?resourceLimits, |
| }; |
| } |
| } |
| |
| /// Configuration of network bandwidth tiers |
| class ClusterNetworkPerformanceConfig { |
| /// Specifies the total network bandwidth tier for NodePools in the cluster. |
| /// Possible string values are: |
| /// - "TIER_UNSPECIFIED" : Default value |
| /// - "TIER_1" : Higher bandwidth, actual values based on VM size. |
| core.String? totalEgressBandwidthTier; |
| |
| ClusterNetworkPerformanceConfig({this.totalEgressBandwidthTier}); |
| |
| ClusterNetworkPerformanceConfig.fromJson(core.Map json_) |
| : this( |
| totalEgressBandwidthTier: |
| json_['totalEgressBandwidthTier'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final totalEgressBandwidthTier = this.totalEgressBandwidthTier; |
| return {'totalEgressBandwidthTier': ?totalEgressBandwidthTier}; |
| } |
| } |
| |
| /// ClusterPolicyConfig stores the configuration for cluster wide policies. |
| class ClusterPolicyConfig { |
| /// Denotes preventing standard node pools and requiring only autopilot node |
| /// pools. |
| core.bool? noStandardNodePools; |
| |
| /// Denotes preventing impersonation and CSRs for GKE System users. |
| core.bool? noSystemImpersonation; |
| |
| /// Denotes that preventing creation and mutation of resources in GKE managed |
| /// namespaces and cluster-scoped GKE managed resources . |
| core.bool? noSystemMutation; |
| |
| /// Denotes preventing unsafe webhooks. |
| core.bool? noUnsafeWebhooks; |
| |
| ClusterPolicyConfig({ |
| this.noStandardNodePools, |
| this.noSystemImpersonation, |
| this.noSystemMutation, |
| this.noUnsafeWebhooks, |
| }); |
| |
| ClusterPolicyConfig.fromJson(core.Map json_) |
| : this( |
| noStandardNodePools: json_['noStandardNodePools'] as core.bool?, |
| noSystemImpersonation: json_['noSystemImpersonation'] as core.bool?, |
| noSystemMutation: json_['noSystemMutation'] as core.bool?, |
| noUnsafeWebhooks: json_['noUnsafeWebhooks'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final noStandardNodePools = this.noStandardNodePools; |
| final noSystemImpersonation = this.noSystemImpersonation; |
| final noSystemMutation = this.noSystemMutation; |
| final noUnsafeWebhooks = this.noUnsafeWebhooks; |
| return { |
| 'noStandardNodePools': ?noStandardNodePools, |
| 'noSystemImpersonation': ?noSystemImpersonation, |
| 'noSystemMutation': ?noSystemMutation, |
| 'noUnsafeWebhooks': ?noUnsafeWebhooks, |
| }; |
| } |
| } |
| |
| /// ClusterUpdate describes an update to the cluster. |
| /// |
| /// Exactly one update can be applied to a cluster with each request, so at most |
| /// one field can be provided. |
| class ClusterUpdate { |
| /// The additional pod ranges to be added to the cluster. |
| /// |
| /// These pod ranges can be used by node pools to allocate pod IPs. |
| AdditionalPodRangesConfig? additionalPodRangesConfig; |
| |
| /// The desired config for additional subnetworks attached to the cluster. |
| DesiredAdditionalIPRangesConfig? desiredAdditionalIpRangesConfig; |
| |
| /// Configurations for the various addons available to run in the cluster. |
| AddonsConfig? desiredAddonsConfig; |
| |
| /// Configuration for limiting anonymous access to all endpoints except the |
| /// health checks. |
| AnonymousAuthenticationConfig? desiredAnonymousAuthenticationConfig; |
| |
| /// The desired authenticator groups config for the cluster. |
| AuthenticatorGroupsConfig? desiredAuthenticatorGroupsConfig; |
| |
| /// AutoIpamConfig contains all information related to Auto IPAM |
| AutoIpamConfig? desiredAutoIpamConfig; |
| |
| /// The desired autopilot cluster policies that to be enforced in the cluster. |
| ClusterPolicyConfig? desiredAutopilotClusterPolicyConfig; |
| |
| /// WorkloadPolicyConfig is the configuration related to GCW workload policy |
| WorkloadPolicyConfig? desiredAutopilotWorkloadPolicyConfig; |
| |
| /// The desired configuration options for the Binary Authorization feature. |
| BinaryAuthorization? desiredBinaryAuthorization; |
| |
| /// Cluster-level autoscaling configuration. |
| ClusterAutoscaling? desiredClusterAutoscaling; |
| |
| /// Deprecated: Compliance Posture is no longer supported. |
| /// |
| /// For more details, see |
| /// https://cloud.google.com/kubernetes-engine/docs/deprecations/posture-management-deprecation. |
| /// Enable/Disable Compliance Posture features for the cluster. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| CompliancePostureConfig? desiredCompliancePostureConfig; |
| |
| /// The desired containerd config for the cluster. |
| ContainerdConfig? desiredContainerdConfig; |
| |
| /// The desired control plane egress control config for the cluster. |
| ControlPlaneEgress? desiredControlPlaneEgress; |
| |
| /// Control plane endpoints configuration. |
| ControlPlaneEndpointsConfig? desiredControlPlaneEndpointsConfig; |
| |
| /// The desired configuration for the fine-grained cost management feature. |
| CostManagementConfig? desiredCostManagementConfig; |
| |
| /// Configuration of etcd encryption. |
| DatabaseEncryption? desiredDatabaseEncryption; |
| |
| /// The desired datapath provider for the cluster. |
| /// Possible string values are: |
| /// - "DATAPATH_PROVIDER_UNSPECIFIED" : Default value. |
| /// - "LEGACY_DATAPATH" : Use the IPTables implementation based on kube-proxy. |
| /// - "ADVANCED_DATAPATH" : Use the eBPF based GKE Dataplane V2 with |
| /// additional features. See the |
| /// [GKE Dataplane V2 documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2) |
| /// for more. |
| core.String? desiredDatapathProvider; |
| |
| /// Override the default setting of whether future created nodes have private |
| /// IP addresses only, namely NetworkConfig.default_enable_private_nodes |
| core.bool? desiredDefaultEnablePrivateNodes; |
| |
| /// The desired status of whether to disable default sNAT for this cluster. |
| DefaultSnatStatus? desiredDefaultSnatStatus; |
| |
| /// Enable/Disable L4 LB VPC firewall reconciliation for the cluster. |
| core.bool? desiredDisableL4LbFirewallReconciliation; |
| |
| /// DNSConfig contains clusterDNS config for this cluster. |
| DNSConfig? desiredDnsConfig; |
| |
| /// Enable/Disable Cilium Clusterwide Network Policy for the cluster. |
| core.bool? desiredEnableCiliumClusterwideNetworkPolicy; |
| |
| /// Enable/Disable FQDN Network Policy for the cluster. |
| core.bool? desiredEnableFqdnNetworkPolicy; |
| |
| /// Enable/Disable Multi-Networking for the cluster |
| core.bool? desiredEnableMultiNetworking; |
| |
| /// Enable/Disable private endpoint for the cluster's master. |
| /// |
| /// Deprecated: Use |
| /// desired_control_plane_endpoints_config.ip_endpoints_config.enable_public_endpoint |
| /// instead. Note that the value of enable_public_endpoint is reversed: if |
| /// enable_private_endpoint is false, then enable_public_endpoint will be |
| /// true. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.bool? desiredEnablePrivateEndpoint; |
| |
| /// The desired enterprise configuration for the cluster. |
| /// |
| /// Deprecated: GKE Enterprise features are now available without an |
| /// Enterprise tier. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| DesiredEnterpriseConfig? desiredEnterpriseConfig; |
| |
| /// The desired fleet configuration for the cluster. |
| Fleet? desiredFleet; |
| |
| /// The desired config of Gateway API on this cluster. |
| GatewayAPIConfig? desiredGatewayApiConfig; |
| |
| /// The desired GCFS config for the cluster |
| GcfsConfig? desiredGcfsConfig; |
| |
| /// The desired Identity Service component configuration. |
| IdentityServiceConfig? desiredIdentityServiceConfig; |
| |
| /// The desired image type for the node pool. |
| /// |
| /// NOTE: Set the "desired_node_pool" field as well. |
| core.String? desiredImageType; |
| |
| /// Specify the details of in-transit encryption. |
| /// Possible string values are: |
| /// - "IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED" : Unspecified, will be |
| /// inferred as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED. |
| /// - "IN_TRANSIT_ENCRYPTION_DISABLED" : In-transit encryption is disabled. |
| /// - "IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" : Data in-transit is |
| /// encrypted using inter-node transparent encryption. |
| core.String? desiredInTransitEncryptionConfig; |
| |
| /// The desired config of Intra-node visibility. |
| IntraNodeVisibilityConfig? desiredIntraNodeVisibilityConfig; |
| |
| /// Desired Beta APIs to be enabled for cluster. |
| K8sBetaAPIConfig? desiredK8sBetaApis; |
| |
| /// The desired L4 Internal Load Balancer Subsetting configuration. |
| ILBSubsettingConfig? desiredL4ilbSubsettingConfig; |
| |
| /// The desired list of Google Compute Engine |
| /// [zones](https://cloud.google.com/compute/docs/zones#available) in which |
| /// the cluster's nodes should be located. |
| /// |
| /// This list must always include the cluster's primary zone. Warning: |
| /// changing cluster locations will update the locations of all node pools and |
| /// will result in nodes being added and/or removed. |
| core.List<core.String>? desiredLocations; |
| |
| /// The desired logging configuration. |
| LoggingConfig? desiredLoggingConfig; |
| |
| /// The logging service the cluster should use to write logs. |
| /// |
| /// Currently available options: * `logging.googleapis.com/kubernetes` - The |
| /// Cloud Logging service with a Kubernetes-native resource model * |
| /// `logging.googleapis.com` - The legacy Cloud Logging service (no longer |
| /// available as of GKE 1.15). * `none` - no logs will be exported from the |
| /// cluster. If left as an empty string,`logging.googleapis.com/kubernetes` |
| /// will be used for GKE 1.14+ or `logging.googleapis.com` for earlier |
| /// versions. |
| core.String? desiredLoggingService; |
| |
| /// The desired managed machine learning diagnostics configuration. |
| ManagedMachineLearningDiagnosticsConfig? |
| desiredManagedMachineLearningDiagnosticsConfig; |
| |
| /// The desired managed open telemetry configuration. |
| ManagedOpenTelemetryConfig? desiredManagedOpentelemetryConfig; |
| |
| /// The desired configuration options for master authorized networks feature. |
| /// |
| /// Deprecated: Use |
| /// desired_control_plane_endpoints_config.ip_endpoints_config.authorized_networks_config |
| /// instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| MasterAuthorizedNetworksConfig? desiredMasterAuthorizedNetworksConfig; |
| |
| /// The Kubernetes version to change the master to. |
| /// |
| /// Users may specify either explicit versions offered by Kubernetes Engine or |
| /// version aliases, which have the following behavior: - "latest": picks the |
| /// highest valid Kubernetes version - "1.X": picks the highest valid |
| /// patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid |
| /// gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit |
| /// Kubernetes version - "-": picks the default Kubernetes version |
| core.String? desiredMasterVersion; |
| |
| /// Configuration for issuance of mTLS keys and certificates to Kubernetes |
| /// pods. |
| MeshCertificates? desiredMeshCertificates; |
| |
| /// The desired monitoring configuration. |
| MonitoringConfig? desiredMonitoringConfig; |
| |
| /// The monitoring service the cluster should use to write metrics. |
| /// |
| /// Currently available options: * `monitoring.googleapis.com/kubernetes` - |
| /// The Cloud Monitoring service with a Kubernetes-native resource model * |
| /// `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no |
| /// longer available as of GKE 1.15). * `none` - No metrics will be exported |
| /// from the cluster. If left as an empty |
| /// string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ |
| /// or `monitoring.googleapis.com` for earlier versions. |
| core.String? desiredMonitoringService; |
| |
| /// The desired network performance config. |
| ClusterNetworkPerformanceConfig? desiredNetworkPerformanceConfig; |
| |
| /// The desired network tier configuration for the cluster. |
| NetworkTierConfig? desiredNetworkTierConfig; |
| |
| /// The desired node kubelet config for the cluster. |
| NodeKubeletConfig? desiredNodeKubeletConfig; |
| |
| /// The desired node kubelet config for all auto-provisioned node pools in |
| /// autopilot clusters and node auto-provisioning enabled clusters. |
| NodeKubeletConfig? desiredNodePoolAutoConfigKubeletConfig; |
| |
| /// The desired Linux node config for all auto-provisioned node pools in |
| /// autopilot clusters and node auto-provisioning enabled clusters. |
| /// |
| /// Currently only `cgroup_mode` can be set here. |
| LinuxNodeConfig? desiredNodePoolAutoConfigLinuxNodeConfig; |
| |
| /// The desired network tags that apply to all auto-provisioned node pools in |
| /// autopilot clusters and node auto-provisioning enabled clusters. |
| NetworkTags? desiredNodePoolAutoConfigNetworkTags; |
| |
| /// The desired resource manager tags that apply to all auto-provisioned node |
| /// pools in autopilot clusters and node auto-provisioning enabled clusters. |
| ResourceManagerTags? desiredNodePoolAutoConfigResourceManagerTags; |
| |
| /// Autoscaler configuration for the node pool specified in |
| /// desired_node_pool_id. |
| /// |
| /// If there is only one pool in the cluster and desired_node_pool_id is not |
| /// provided then the change applies to that single node pool. |
| NodePoolAutoscaling? desiredNodePoolAutoscaling; |
| |
| /// The node pool to be upgraded. |
| /// |
| /// This field is mandatory if "desired_node_version", "desired_image_family" |
| /// or "desired_node_pool_autoscaling" is specified and there is more than one |
| /// node pool on the cluster. |
| core.String? desiredNodePoolId; |
| |
| /// The desired node pool logging configuration defaults for the cluster. |
| NodePoolLoggingConfig? desiredNodePoolLoggingConfig; |
| |
| /// The Kubernetes version to change the nodes to (typically an upgrade). |
| /// |
| /// Users may specify either explicit versions offered by Kubernetes Engine or |
| /// version aliases, which have the following behavior: - "latest": picks the |
| /// highest valid Kubernetes version - "1.X": picks the highest valid |
| /// patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid |
| /// gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit |
| /// Kubernetes version - "-": picks the Kubernetes master version |
| core.String? desiredNodeVersion; |
| |
| /// The desired notification configuration. |
| NotificationConfig? desiredNotificationConfig; |
| |
| /// The desired parent product config for the cluster. |
| ParentProductConfig? desiredParentProductConfig; |
| |
| /// The desired config for pod autoscaling. |
| PodAutoscaling? desiredPodAutoscaling; |
| |
| /// The desired private cluster configuration. |
| /// |
| /// master_global_access_config is the only field that can be changed via this |
| /// field. See also ClusterUpdate.desired_enable_private_endpoint for |
| /// modifying other fields within PrivateClusterConfig. Deprecated: Use |
| /// desired_control_plane_endpoints_config.ip_endpoints_config.global_access |
| /// instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| PrivateClusterConfig? desiredPrivateClusterConfig; |
| |
| /// The desired state of IPv6 connectivity to Google Services. |
| /// Possible string values are: |
| /// - "PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED" : Default value. Same as |
| /// DISABLED |
| /// - "PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED" : No private access to or from |
| /// Google Services |
| /// - "PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE" : Enables private IPv6 access to |
| /// Google Services from GKE |
| /// - "PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL" : Enables private IPv6 access |
| /// to and from Google Services |
| core.String? desiredPrivateIpv6GoogleAccess; |
| |
| /// The desired privileged admission config for the cluster. |
| PrivilegedAdmissionConfig? desiredPrivilegedAdmissionConfig; |
| |
| /// RBACBindingConfig allows user to restrict ClusterRoleBindings an |
| /// RoleBindings that can be created. |
| RBACBindingConfig? desiredRbacBindingConfig; |
| |
| /// The desired release channel configuration. |
| ReleaseChannel? desiredReleaseChannel; |
| |
| /// The desired configuration for exporting resource usage. |
| ResourceUsageExportConfig? desiredResourceUsageExportConfig; |
| |
| /// Enable/Disable Secret Manager Config. |
| SecretManagerConfig? desiredSecretManagerConfig; |
| |
| /// Configuration for sync Secret Manager secrets as k8s secrets. |
| SecretSyncConfig? desiredSecretSyncConfig; |
| |
| /// Enable/Disable Security Posture API features for the cluster. |
| SecurityPostureConfig? desiredSecurityPostureConfig; |
| |
| /// ServiceExternalIPsConfig specifies the config for the use of Services with |
| /// ExternalIPs field. |
| ServiceExternalIPsConfig? desiredServiceExternalIpsConfig; |
| |
| /// Configuration for Shielded Nodes. |
| ShieldedNodes? desiredShieldedNodes; |
| |
| /// The desired stack type of the cluster. |
| /// |
| /// If a stack type is provided and does not match the current stack type of |
| /// the cluster, update will attempt to change the stack type to the new type. |
| /// Possible string values are: |
| /// - "STACK_TYPE_UNSPECIFIED" : Default value, will be defaulted as IPV4 only |
| /// - "IPV4" : Cluster is IPV4 only |
| /// - "IPV4_IPV6" : Cluster can use both IPv4 and IPv6 |
| core.String? desiredStackType; |
| |
| /// The desired user managed keys config for the cluster. |
| UserManagedKeysConfig? desiredUserManagedKeysConfig; |
| |
| /// Cluster-level Vertical Pod Autoscaling configuration. |
| VerticalPodAutoscaling? desiredVerticalPodAutoscaling; |
| |
| /// Configuration for Workload Identity. |
| WorkloadIdentityConfig? desiredWorkloadIdentityConfig; |
| |
| /// Kubernetes open source beta apis enabled on the cluster. |
| /// |
| /// Only beta apis |
| K8sBetaAPIConfig? enableK8sBetaApis; |
| |
| /// The current etag of the cluster. |
| /// |
| /// If an etag is provided and does not match the current etag of the cluster, |
| /// update will be blocked and an ABORTED error will be returned. |
| core.String? etag; |
| |
| /// Configuration for GKE auto upgrade. |
| GkeAutoUpgradeConfig? gkeAutoUpgradeConfig; |
| |
| /// The additional pod ranges that are to be removed from the cluster. |
| /// |
| /// The pod ranges specified here must have been specified earlier in the |
| /// 'additional_pod_ranges_config' argument. |
| AdditionalPodRangesConfig? removedAdditionalPodRangesConfig; |
| |
| /// The Custom keys configuration for the cluster. |
| /// |
| /// This field is deprecated. Use |
| /// ClusterUpdate.desired_user_managed_keys_config instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| UserManagedKeysConfig? userManagedKeysConfig; |
| |
| ClusterUpdate({ |
| this.additionalPodRangesConfig, |
| this.desiredAdditionalIpRangesConfig, |
| this.desiredAddonsConfig, |
| this.desiredAnonymousAuthenticationConfig, |
| this.desiredAuthenticatorGroupsConfig, |
| this.desiredAutoIpamConfig, |
| this.desiredAutopilotClusterPolicyConfig, |
| this.desiredAutopilotWorkloadPolicyConfig, |
| this.desiredBinaryAuthorization, |
| this.desiredClusterAutoscaling, |
| this.desiredCompliancePostureConfig, |
| this.desiredContainerdConfig, |
| this.desiredControlPlaneEgress, |
| this.desiredControlPlaneEndpointsConfig, |
| this.desiredCostManagementConfig, |
| this.desiredDatabaseEncryption, |
| this.desiredDatapathProvider, |
| this.desiredDefaultEnablePrivateNodes, |
| this.desiredDefaultSnatStatus, |
| this.desiredDisableL4LbFirewallReconciliation, |
| this.desiredDnsConfig, |
| this.desiredEnableCiliumClusterwideNetworkPolicy, |
| this.desiredEnableFqdnNetworkPolicy, |
| this.desiredEnableMultiNetworking, |
| this.desiredEnablePrivateEndpoint, |
| this.desiredEnterpriseConfig, |
| this.desiredFleet, |
| this.desiredGatewayApiConfig, |
| this.desiredGcfsConfig, |
| this.desiredIdentityServiceConfig, |
| this.desiredImageType, |
| this.desiredInTransitEncryptionConfig, |
| this.desiredIntraNodeVisibilityConfig, |
| this.desiredK8sBetaApis, |
| this.desiredL4ilbSubsettingConfig, |
| this.desiredLocations, |
| this.desiredLoggingConfig, |
| this.desiredLoggingService, |
| this.desiredManagedMachineLearningDiagnosticsConfig, |
| this.desiredManagedOpentelemetryConfig, |
| this.desiredMasterAuthorizedNetworksConfig, |
| this.desiredMasterVersion, |
| this.desiredMeshCertificates, |
| this.desiredMonitoringConfig, |
| this.desiredMonitoringService, |
| this.desiredNetworkPerformanceConfig, |
| this.desiredNetworkTierConfig, |
| this.desiredNodeKubeletConfig, |
| this.desiredNodePoolAutoConfigKubeletConfig, |
| this.desiredNodePoolAutoConfigLinuxNodeConfig, |
| this.desiredNodePoolAutoConfigNetworkTags, |
| this.desiredNodePoolAutoConfigResourceManagerTags, |
| this.desiredNodePoolAutoscaling, |
| this.desiredNodePoolId, |
| this.desiredNodePoolLoggingConfig, |
| this.desiredNodeVersion, |
| this.desiredNotificationConfig, |
| this.desiredParentProductConfig, |
| this.desiredPodAutoscaling, |
| this.desiredPrivateClusterConfig, |
| this.desiredPrivateIpv6GoogleAccess, |
| this.desiredPrivilegedAdmissionConfig, |
| this.desiredRbacBindingConfig, |
| this.desiredReleaseChannel, |
| this.desiredResourceUsageExportConfig, |
| this.desiredSecretManagerConfig, |
| this.desiredSecretSyncConfig, |
| this.desiredSecurityPostureConfig, |
| this.desiredServiceExternalIpsConfig, |
| this.desiredShieldedNodes, |
| this.desiredStackType, |
| this.desiredUserManagedKeysConfig, |
| this.desiredVerticalPodAutoscaling, |
| this.desiredWorkloadIdentityConfig, |
| this.enableK8sBetaApis, |
| this.etag, |
| this.gkeAutoUpgradeConfig, |
| this.removedAdditionalPodRangesConfig, |
| this.userManagedKeysConfig, |
| }); |
| |
| ClusterUpdate.fromJson(core.Map json_) |
| : this( |
| additionalPodRangesConfig: |
| json_.containsKey('additionalPodRangesConfig') |
| ? AdditionalPodRangesConfig.fromJson( |
| json_['additionalPodRangesConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredAdditionalIpRangesConfig: |
| json_.containsKey('desiredAdditionalIpRangesConfig') |
| ? DesiredAdditionalIPRangesConfig.fromJson( |
| json_['desiredAdditionalIpRangesConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredAddonsConfig: json_.containsKey('desiredAddonsConfig') |
| ? AddonsConfig.fromJson( |
| json_['desiredAddonsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredAnonymousAuthenticationConfig: |
| json_.containsKey('desiredAnonymousAuthenticationConfig') |
| ? AnonymousAuthenticationConfig.fromJson( |
| json_['desiredAnonymousAuthenticationConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredAuthenticatorGroupsConfig: |
| json_.containsKey('desiredAuthenticatorGroupsConfig') |
| ? AuthenticatorGroupsConfig.fromJson( |
| json_['desiredAuthenticatorGroupsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredAutoIpamConfig: json_.containsKey('desiredAutoIpamConfig') |
| ? AutoIpamConfig.fromJson( |
| json_['desiredAutoIpamConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredAutopilotClusterPolicyConfig: |
| json_.containsKey('desiredAutopilotClusterPolicyConfig') |
| ? ClusterPolicyConfig.fromJson( |
| json_['desiredAutopilotClusterPolicyConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredAutopilotWorkloadPolicyConfig: |
| json_.containsKey('desiredAutopilotWorkloadPolicyConfig') |
| ? WorkloadPolicyConfig.fromJson( |
| json_['desiredAutopilotWorkloadPolicyConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredBinaryAuthorization: |
| json_.containsKey('desiredBinaryAuthorization') |
| ? BinaryAuthorization.fromJson( |
| json_['desiredBinaryAuthorization'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredClusterAutoscaling: |
| json_.containsKey('desiredClusterAutoscaling') |
| ? ClusterAutoscaling.fromJson( |
| json_['desiredClusterAutoscaling'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredCompliancePostureConfig: |
| json_.containsKey('desiredCompliancePostureConfig') |
| ? CompliancePostureConfig.fromJson( |
| json_['desiredCompliancePostureConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredContainerdConfig: json_.containsKey('desiredContainerdConfig') |
| ? ContainerdConfig.fromJson( |
| json_['desiredContainerdConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredControlPlaneEgress: |
| json_.containsKey('desiredControlPlaneEgress') |
| ? ControlPlaneEgress.fromJson( |
| json_['desiredControlPlaneEgress'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredControlPlaneEndpointsConfig: |
| json_.containsKey('desiredControlPlaneEndpointsConfig') |
| ? ControlPlaneEndpointsConfig.fromJson( |
| json_['desiredControlPlaneEndpointsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredCostManagementConfig: |
| json_.containsKey('desiredCostManagementConfig') |
| ? CostManagementConfig.fromJson( |
| json_['desiredCostManagementConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredDatabaseEncryption: |
| json_.containsKey('desiredDatabaseEncryption') |
| ? DatabaseEncryption.fromJson( |
| json_['desiredDatabaseEncryption'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredDatapathProvider: |
| json_['desiredDatapathProvider'] as core.String?, |
| desiredDefaultEnablePrivateNodes: |
| json_['desiredDefaultEnablePrivateNodes'] as core.bool?, |
| desiredDefaultSnatStatus: json_.containsKey('desiredDefaultSnatStatus') |
| ? DefaultSnatStatus.fromJson( |
| json_['desiredDefaultSnatStatus'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredDisableL4LbFirewallReconciliation: |
| json_['desiredDisableL4LbFirewallReconciliation'] as core.bool?, |
| desiredDnsConfig: json_.containsKey('desiredDnsConfig') |
| ? DNSConfig.fromJson( |
| json_['desiredDnsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredEnableCiliumClusterwideNetworkPolicy: |
| json_['desiredEnableCiliumClusterwideNetworkPolicy'] as core.bool?, |
| desiredEnableFqdnNetworkPolicy: |
| json_['desiredEnableFqdnNetworkPolicy'] as core.bool?, |
| desiredEnableMultiNetworking: |
| json_['desiredEnableMultiNetworking'] as core.bool?, |
| desiredEnablePrivateEndpoint: |
| json_['desiredEnablePrivateEndpoint'] as core.bool?, |
| desiredEnterpriseConfig: json_.containsKey('desiredEnterpriseConfig') |
| ? DesiredEnterpriseConfig.fromJson( |
| json_['desiredEnterpriseConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredFleet: json_.containsKey('desiredFleet') |
| ? Fleet.fromJson( |
| json_['desiredFleet'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredGatewayApiConfig: json_.containsKey('desiredGatewayApiConfig') |
| ? GatewayAPIConfig.fromJson( |
| json_['desiredGatewayApiConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredGcfsConfig: json_.containsKey('desiredGcfsConfig') |
| ? GcfsConfig.fromJson( |
| json_['desiredGcfsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredIdentityServiceConfig: |
| json_.containsKey('desiredIdentityServiceConfig') |
| ? IdentityServiceConfig.fromJson( |
| json_['desiredIdentityServiceConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredImageType: json_['desiredImageType'] as core.String?, |
| desiredInTransitEncryptionConfig: |
| json_['desiredInTransitEncryptionConfig'] as core.String?, |
| desiredIntraNodeVisibilityConfig: |
| json_.containsKey('desiredIntraNodeVisibilityConfig') |
| ? IntraNodeVisibilityConfig.fromJson( |
| json_['desiredIntraNodeVisibilityConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredK8sBetaApis: json_.containsKey('desiredK8sBetaApis') |
| ? K8sBetaAPIConfig.fromJson( |
| json_['desiredK8sBetaApis'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredL4ilbSubsettingConfig: |
| json_.containsKey('desiredL4ilbSubsettingConfig') |
| ? ILBSubsettingConfig.fromJson( |
| json_['desiredL4ilbSubsettingConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredLocations: (json_['desiredLocations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| desiredLoggingConfig: json_.containsKey('desiredLoggingConfig') |
| ? LoggingConfig.fromJson( |
| json_['desiredLoggingConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredLoggingService: json_['desiredLoggingService'] as core.String?, |
| desiredManagedMachineLearningDiagnosticsConfig: |
| json_.containsKey('desiredManagedMachineLearningDiagnosticsConfig') |
| ? ManagedMachineLearningDiagnosticsConfig.fromJson( |
| json_['desiredManagedMachineLearningDiagnosticsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredManagedOpentelemetryConfig: |
| json_.containsKey('desiredManagedOpentelemetryConfig') |
| ? ManagedOpenTelemetryConfig.fromJson( |
| json_['desiredManagedOpentelemetryConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredMasterAuthorizedNetworksConfig: |
| json_.containsKey('desiredMasterAuthorizedNetworksConfig') |
| ? MasterAuthorizedNetworksConfig.fromJson( |
| json_['desiredMasterAuthorizedNetworksConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredMasterVersion: json_['desiredMasterVersion'] as core.String?, |
| desiredMeshCertificates: json_.containsKey('desiredMeshCertificates') |
| ? MeshCertificates.fromJson( |
| json_['desiredMeshCertificates'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredMonitoringConfig: json_.containsKey('desiredMonitoringConfig') |
| ? MonitoringConfig.fromJson( |
| json_['desiredMonitoringConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredMonitoringService: |
| json_['desiredMonitoringService'] as core.String?, |
| desiredNetworkPerformanceConfig: |
| json_.containsKey('desiredNetworkPerformanceConfig') |
| ? ClusterNetworkPerformanceConfig.fromJson( |
| json_['desiredNetworkPerformanceConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNetworkTierConfig: json_.containsKey('desiredNetworkTierConfig') |
| ? NetworkTierConfig.fromJson( |
| json_['desiredNetworkTierConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNodeKubeletConfig: json_.containsKey('desiredNodeKubeletConfig') |
| ? NodeKubeletConfig.fromJson( |
| json_['desiredNodeKubeletConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNodePoolAutoConfigKubeletConfig: |
| json_.containsKey('desiredNodePoolAutoConfigKubeletConfig') |
| ? NodeKubeletConfig.fromJson( |
| json_['desiredNodePoolAutoConfigKubeletConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNodePoolAutoConfigLinuxNodeConfig: |
| json_.containsKey('desiredNodePoolAutoConfigLinuxNodeConfig') |
| ? LinuxNodeConfig.fromJson( |
| json_['desiredNodePoolAutoConfigLinuxNodeConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNodePoolAutoConfigNetworkTags: |
| json_.containsKey('desiredNodePoolAutoConfigNetworkTags') |
| ? NetworkTags.fromJson( |
| json_['desiredNodePoolAutoConfigNetworkTags'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNodePoolAutoConfigResourceManagerTags: |
| json_.containsKey('desiredNodePoolAutoConfigResourceManagerTags') |
| ? ResourceManagerTags.fromJson( |
| json_['desiredNodePoolAutoConfigResourceManagerTags'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNodePoolAutoscaling: |
| json_.containsKey('desiredNodePoolAutoscaling') |
| ? NodePoolAutoscaling.fromJson( |
| json_['desiredNodePoolAutoscaling'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNodePoolId: json_['desiredNodePoolId'] as core.String?, |
| desiredNodePoolLoggingConfig: |
| json_.containsKey('desiredNodePoolLoggingConfig') |
| ? NodePoolLoggingConfig.fromJson( |
| json_['desiredNodePoolLoggingConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredNodeVersion: json_['desiredNodeVersion'] as core.String?, |
| desiredNotificationConfig: |
| json_.containsKey('desiredNotificationConfig') |
| ? NotificationConfig.fromJson( |
| json_['desiredNotificationConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredParentProductConfig: |
| json_.containsKey('desiredParentProductConfig') |
| ? ParentProductConfig.fromJson( |
| json_['desiredParentProductConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredPodAutoscaling: json_.containsKey('desiredPodAutoscaling') |
| ? PodAutoscaling.fromJson( |
| json_['desiredPodAutoscaling'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredPrivateClusterConfig: |
| json_.containsKey('desiredPrivateClusterConfig') |
| ? PrivateClusterConfig.fromJson( |
| json_['desiredPrivateClusterConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredPrivateIpv6GoogleAccess: |
| json_['desiredPrivateIpv6GoogleAccess'] as core.String?, |
| desiredPrivilegedAdmissionConfig: |
| json_.containsKey('desiredPrivilegedAdmissionConfig') |
| ? PrivilegedAdmissionConfig.fromJson( |
| json_['desiredPrivilegedAdmissionConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredRbacBindingConfig: json_.containsKey('desiredRbacBindingConfig') |
| ? RBACBindingConfig.fromJson( |
| json_['desiredRbacBindingConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredReleaseChannel: json_.containsKey('desiredReleaseChannel') |
| ? ReleaseChannel.fromJson( |
| json_['desiredReleaseChannel'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredResourceUsageExportConfig: |
| json_.containsKey('desiredResourceUsageExportConfig') |
| ? ResourceUsageExportConfig.fromJson( |
| json_['desiredResourceUsageExportConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredSecretManagerConfig: |
| json_.containsKey('desiredSecretManagerConfig') |
| ? SecretManagerConfig.fromJson( |
| json_['desiredSecretManagerConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredSecretSyncConfig: json_.containsKey('desiredSecretSyncConfig') |
| ? SecretSyncConfig.fromJson( |
| json_['desiredSecretSyncConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredSecurityPostureConfig: |
| json_.containsKey('desiredSecurityPostureConfig') |
| ? SecurityPostureConfig.fromJson( |
| json_['desiredSecurityPostureConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredServiceExternalIpsConfig: |
| json_.containsKey('desiredServiceExternalIpsConfig') |
| ? ServiceExternalIPsConfig.fromJson( |
| json_['desiredServiceExternalIpsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredShieldedNodes: json_.containsKey('desiredShieldedNodes') |
| ? ShieldedNodes.fromJson( |
| json_['desiredShieldedNodes'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredStackType: json_['desiredStackType'] as core.String?, |
| desiredUserManagedKeysConfig: |
| json_.containsKey('desiredUserManagedKeysConfig') |
| ? UserManagedKeysConfig.fromJson( |
| json_['desiredUserManagedKeysConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredVerticalPodAutoscaling: |
| json_.containsKey('desiredVerticalPodAutoscaling') |
| ? VerticalPodAutoscaling.fromJson( |
| json_['desiredVerticalPodAutoscaling'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| desiredWorkloadIdentityConfig: |
| json_.containsKey('desiredWorkloadIdentityConfig') |
| ? WorkloadIdentityConfig.fromJson( |
| json_['desiredWorkloadIdentityConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enableK8sBetaApis: json_.containsKey('enableK8sBetaApis') |
| ? K8sBetaAPIConfig.fromJson( |
| json_['enableK8sBetaApis'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| etag: json_['etag'] as core.String?, |
| gkeAutoUpgradeConfig: json_.containsKey('gkeAutoUpgradeConfig') |
| ? GkeAutoUpgradeConfig.fromJson( |
| json_['gkeAutoUpgradeConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| removedAdditionalPodRangesConfig: |
| json_.containsKey('removedAdditionalPodRangesConfig') |
| ? AdditionalPodRangesConfig.fromJson( |
| json_['removedAdditionalPodRangesConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| userManagedKeysConfig: json_.containsKey('userManagedKeysConfig') |
| ? UserManagedKeysConfig.fromJson( |
| json_['userManagedKeysConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final additionalPodRangesConfig = this.additionalPodRangesConfig; |
| final desiredAdditionalIpRangesConfig = |
| this.desiredAdditionalIpRangesConfig; |
| final desiredAddonsConfig = this.desiredAddonsConfig; |
| final desiredAnonymousAuthenticationConfig = |
| this.desiredAnonymousAuthenticationConfig; |
| final desiredAuthenticatorGroupsConfig = |
| this.desiredAuthenticatorGroupsConfig; |
| final desiredAutoIpamConfig = this.desiredAutoIpamConfig; |
| final desiredAutopilotClusterPolicyConfig = |
| this.desiredAutopilotClusterPolicyConfig; |
| final desiredAutopilotWorkloadPolicyConfig = |
| this.desiredAutopilotWorkloadPolicyConfig; |
| final desiredBinaryAuthorization = this.desiredBinaryAuthorization; |
| final desiredClusterAutoscaling = this.desiredClusterAutoscaling; |
| final desiredCompliancePostureConfig = this.desiredCompliancePostureConfig; |
| final desiredContainerdConfig = this.desiredContainerdConfig; |
| final desiredControlPlaneEgress = this.desiredControlPlaneEgress; |
| final desiredControlPlaneEndpointsConfig = |
| this.desiredControlPlaneEndpointsConfig; |
| final desiredCostManagementConfig = this.desiredCostManagementConfig; |
| final desiredDatabaseEncryption = this.desiredDatabaseEncryption; |
| final desiredDatapathProvider = this.desiredDatapathProvider; |
| final desiredDefaultEnablePrivateNodes = |
| this.desiredDefaultEnablePrivateNodes; |
| final desiredDefaultSnatStatus = this.desiredDefaultSnatStatus; |
| final desiredDisableL4LbFirewallReconciliation = |
| this.desiredDisableL4LbFirewallReconciliation; |
| final desiredDnsConfig = this.desiredDnsConfig; |
| final desiredEnableCiliumClusterwideNetworkPolicy = |
| this.desiredEnableCiliumClusterwideNetworkPolicy; |
| final desiredEnableFqdnNetworkPolicy = this.desiredEnableFqdnNetworkPolicy; |
| final desiredEnableMultiNetworking = this.desiredEnableMultiNetworking; |
| final desiredEnablePrivateEndpoint = this.desiredEnablePrivateEndpoint; |
| final desiredEnterpriseConfig = this.desiredEnterpriseConfig; |
| final desiredFleet = this.desiredFleet; |
| final desiredGatewayApiConfig = this.desiredGatewayApiConfig; |
| final desiredGcfsConfig = this.desiredGcfsConfig; |
| final desiredIdentityServiceConfig = this.desiredIdentityServiceConfig; |
| final desiredImageType = this.desiredImageType; |
| final desiredInTransitEncryptionConfig = |
| this.desiredInTransitEncryptionConfig; |
| final desiredIntraNodeVisibilityConfig = |
| this.desiredIntraNodeVisibilityConfig; |
| final desiredK8sBetaApis = this.desiredK8sBetaApis; |
| final desiredL4ilbSubsettingConfig = this.desiredL4ilbSubsettingConfig; |
| final desiredLocations = this.desiredLocations; |
| final desiredLoggingConfig = this.desiredLoggingConfig; |
| final desiredLoggingService = this.desiredLoggingService; |
| final desiredManagedMachineLearningDiagnosticsConfig = |
| this.desiredManagedMachineLearningDiagnosticsConfig; |
| final desiredManagedOpentelemetryConfig = |
| this.desiredManagedOpentelemetryConfig; |
| final desiredMasterAuthorizedNetworksConfig = |
| this.desiredMasterAuthorizedNetworksConfig; |
| final desiredMasterVersion = this.desiredMasterVersion; |
| final desiredMeshCertificates = this.desiredMeshCertificates; |
| final desiredMonitoringConfig = this.desiredMonitoringConfig; |
| final desiredMonitoringService = this.desiredMonitoringService; |
| final desiredNetworkPerformanceConfig = |
| this.desiredNetworkPerformanceConfig; |
| final desiredNetworkTierConfig = this.desiredNetworkTierConfig; |
| final desiredNodeKubeletConfig = this.desiredNodeKubeletConfig; |
| final desiredNodePoolAutoConfigKubeletConfig = |
| this.desiredNodePoolAutoConfigKubeletConfig; |
| final desiredNodePoolAutoConfigLinuxNodeConfig = |
| this.desiredNodePoolAutoConfigLinuxNodeConfig; |
| final desiredNodePoolAutoConfigNetworkTags = |
| this.desiredNodePoolAutoConfigNetworkTags; |
| final desiredNodePoolAutoConfigResourceManagerTags = |
| this.desiredNodePoolAutoConfigResourceManagerTags; |
| final desiredNodePoolAutoscaling = this.desiredNodePoolAutoscaling; |
| final desiredNodePoolId = this.desiredNodePoolId; |
| final desiredNodePoolLoggingConfig = this.desiredNodePoolLoggingConfig; |
| final desiredNodeVersion = this.desiredNodeVersion; |
| final desiredNotificationConfig = this.desiredNotificationConfig; |
| final desiredParentProductConfig = this.desiredParentProductConfig; |
| final desiredPodAutoscaling = this.desiredPodAutoscaling; |
| final desiredPrivateClusterConfig = this.desiredPrivateClusterConfig; |
| final desiredPrivateIpv6GoogleAccess = this.desiredPrivateIpv6GoogleAccess; |
| final desiredPrivilegedAdmissionConfig = |
| this.desiredPrivilegedAdmissionConfig; |
| final desiredRbacBindingConfig = this.desiredRbacBindingConfig; |
| final desiredReleaseChannel = this.desiredReleaseChannel; |
| final desiredResourceUsageExportConfig = |
| this.desiredResourceUsageExportConfig; |
| final desiredSecretManagerConfig = this.desiredSecretManagerConfig; |
| final desiredSecretSyncConfig = this.desiredSecretSyncConfig; |
| final desiredSecurityPostureConfig = this.desiredSecurityPostureConfig; |
| final desiredServiceExternalIpsConfig = |
| this.desiredServiceExternalIpsConfig; |
| final desiredShieldedNodes = this.desiredShieldedNodes; |
| final desiredStackType = this.desiredStackType; |
| final desiredUserManagedKeysConfig = this.desiredUserManagedKeysConfig; |
| final desiredVerticalPodAutoscaling = this.desiredVerticalPodAutoscaling; |
| final desiredWorkloadIdentityConfig = this.desiredWorkloadIdentityConfig; |
| final enableK8sBetaApis = this.enableK8sBetaApis; |
| final etag = this.etag; |
| final gkeAutoUpgradeConfig = this.gkeAutoUpgradeConfig; |
| final removedAdditionalPodRangesConfig = |
| this.removedAdditionalPodRangesConfig; |
| final userManagedKeysConfig = this.userManagedKeysConfig; |
| return { |
| 'additionalPodRangesConfig': ?additionalPodRangesConfig, |
| 'desiredAdditionalIpRangesConfig': ?desiredAdditionalIpRangesConfig, |
| 'desiredAddonsConfig': ?desiredAddonsConfig, |
| 'desiredAnonymousAuthenticationConfig': |
| ?desiredAnonymousAuthenticationConfig, |
| 'desiredAuthenticatorGroupsConfig': ?desiredAuthenticatorGroupsConfig, |
| 'desiredAutoIpamConfig': ?desiredAutoIpamConfig, |
| 'desiredAutopilotClusterPolicyConfig': |
| ?desiredAutopilotClusterPolicyConfig, |
| 'desiredAutopilotWorkloadPolicyConfig': |
| ?desiredAutopilotWorkloadPolicyConfig, |
| 'desiredBinaryAuthorization': ?desiredBinaryAuthorization, |
| 'desiredClusterAutoscaling': ?desiredClusterAutoscaling, |
| 'desiredCompliancePostureConfig': ?desiredCompliancePostureConfig, |
| 'desiredContainerdConfig': ?desiredContainerdConfig, |
| 'desiredControlPlaneEgress': ?desiredControlPlaneEgress, |
| 'desiredControlPlaneEndpointsConfig': ?desiredControlPlaneEndpointsConfig, |
| 'desiredCostManagementConfig': ?desiredCostManagementConfig, |
| 'desiredDatabaseEncryption': ?desiredDatabaseEncryption, |
| 'desiredDatapathProvider': ?desiredDatapathProvider, |
| 'desiredDefaultEnablePrivateNodes': ?desiredDefaultEnablePrivateNodes, |
| 'desiredDefaultSnatStatus': ?desiredDefaultSnatStatus, |
| 'desiredDisableL4LbFirewallReconciliation': |
| ?desiredDisableL4LbFirewallReconciliation, |
| 'desiredDnsConfig': ?desiredDnsConfig, |
| 'desiredEnableCiliumClusterwideNetworkPolicy': |
| ?desiredEnableCiliumClusterwideNetworkPolicy, |
| 'desiredEnableFqdnNetworkPolicy': ?desiredEnableFqdnNetworkPolicy, |
| 'desiredEnableMultiNetworking': ?desiredEnableMultiNetworking, |
| 'desiredEnablePrivateEndpoint': ?desiredEnablePrivateEndpoint, |
| 'desiredEnterpriseConfig': ?desiredEnterpriseConfig, |
| 'desiredFleet': ?desiredFleet, |
| 'desiredGatewayApiConfig': ?desiredGatewayApiConfig, |
| 'desiredGcfsConfig': ?desiredGcfsConfig, |
| 'desiredIdentityServiceConfig': ?desiredIdentityServiceConfig, |
| 'desiredImageType': ?desiredImageType, |
| 'desiredInTransitEncryptionConfig': ?desiredInTransitEncryptionConfig, |
| 'desiredIntraNodeVisibilityConfig': ?desiredIntraNodeVisibilityConfig, |
| 'desiredK8sBetaApis': ?desiredK8sBetaApis, |
| 'desiredL4ilbSubsettingConfig': ?desiredL4ilbSubsettingConfig, |
| 'desiredLocations': ?desiredLocations, |
| 'desiredLoggingConfig': ?desiredLoggingConfig, |
| 'desiredLoggingService': ?desiredLoggingService, |
| 'desiredManagedMachineLearningDiagnosticsConfig': |
| ?desiredManagedMachineLearningDiagnosticsConfig, |
| 'desiredManagedOpentelemetryConfig': ?desiredManagedOpentelemetryConfig, |
| 'desiredMasterAuthorizedNetworksConfig': |
| ?desiredMasterAuthorizedNetworksConfig, |
| 'desiredMasterVersion': ?desiredMasterVersion, |
| 'desiredMeshCertificates': ?desiredMeshCertificates, |
| 'desiredMonitoringConfig': ?desiredMonitoringConfig, |
| 'desiredMonitoringService': ?desiredMonitoringService, |
| 'desiredNetworkPerformanceConfig': ?desiredNetworkPerformanceConfig, |
| 'desiredNetworkTierConfig': ?desiredNetworkTierConfig, |
| 'desiredNodeKubeletConfig': ?desiredNodeKubeletConfig, |
| 'desiredNodePoolAutoConfigKubeletConfig': |
| ?desiredNodePoolAutoConfigKubeletConfig, |
| 'desiredNodePoolAutoConfigLinuxNodeConfig': |
| ?desiredNodePoolAutoConfigLinuxNodeConfig, |
| 'desiredNodePoolAutoConfigNetworkTags': |
| ?desiredNodePoolAutoConfigNetworkTags, |
| 'desiredNodePoolAutoConfigResourceManagerTags': |
| ?desiredNodePoolAutoConfigResourceManagerTags, |
| 'desiredNodePoolAutoscaling': ?desiredNodePoolAutoscaling, |
| 'desiredNodePoolId': ?desiredNodePoolId, |
| 'desiredNodePoolLoggingConfig': ?desiredNodePoolLoggingConfig, |
| 'desiredNodeVersion': ?desiredNodeVersion, |
| 'desiredNotificationConfig': ?desiredNotificationConfig, |
| 'desiredParentProductConfig': ?desiredParentProductConfig, |
| 'desiredPodAutoscaling': ?desiredPodAutoscaling, |
| 'desiredPrivateClusterConfig': ?desiredPrivateClusterConfig, |
| 'desiredPrivateIpv6GoogleAccess': ?desiredPrivateIpv6GoogleAccess, |
| 'desiredPrivilegedAdmissionConfig': ?desiredPrivilegedAdmissionConfig, |
| 'desiredRbacBindingConfig': ?desiredRbacBindingConfig, |
| 'desiredReleaseChannel': ?desiredReleaseChannel, |
| 'desiredResourceUsageExportConfig': ?desiredResourceUsageExportConfig, |
| 'desiredSecretManagerConfig': ?desiredSecretManagerConfig, |
| 'desiredSecretSyncConfig': ?desiredSecretSyncConfig, |
| 'desiredSecurityPostureConfig': ?desiredSecurityPostureConfig, |
| 'desiredServiceExternalIpsConfig': ?desiredServiceExternalIpsConfig, |
| 'desiredShieldedNodes': ?desiredShieldedNodes, |
| 'desiredStackType': ?desiredStackType, |
| 'desiredUserManagedKeysConfig': ?desiredUserManagedKeysConfig, |
| 'desiredVerticalPodAutoscaling': ?desiredVerticalPodAutoscaling, |
| 'desiredWorkloadIdentityConfig': ?desiredWorkloadIdentityConfig, |
| 'enableK8sBetaApis': ?enableK8sBetaApis, |
| 'etag': ?etag, |
| 'gkeAutoUpgradeConfig': ?gkeAutoUpgradeConfig, |
| 'removedAdditionalPodRangesConfig': ?removedAdditionalPodRangesConfig, |
| 'userManagedKeysConfig': ?userManagedKeysConfig, |
| }; |
| } |
| } |
| |
| /// ClusterUpgradeInfo contains the upgrade information of a cluster. |
| class ClusterUpgradeInfo { |
| /// The auto upgrade status. |
| core.List<core.String>? autoUpgradeStatus; |
| |
| /// The cluster's current minor version's end of extended support timestamp. |
| core.String? endOfExtendedSupportTimestamp; |
| |
| /// The cluster's current minor version's end of standard support timestamp. |
| core.String? endOfStandardSupportTimestamp; |
| |
| /// minor_target_version indicates the target version for minor upgrade. |
| core.String? minorTargetVersion; |
| |
| /// patch_target_version indicates the target version for patch upgrade. |
| core.String? patchTargetVersion; |
| |
| /// The auto upgrade paused reason. |
| core.List<core.String>? pausedReason; |
| |
| /// The list of past auto upgrades. |
| core.List<UpgradeDetails>? upgradeDetails; |
| |
| ClusterUpgradeInfo({ |
| this.autoUpgradeStatus, |
| this.endOfExtendedSupportTimestamp, |
| this.endOfStandardSupportTimestamp, |
| this.minorTargetVersion, |
| this.patchTargetVersion, |
| this.pausedReason, |
| this.upgradeDetails, |
| }); |
| |
| ClusterUpgradeInfo.fromJson(core.Map json_) |
| : this( |
| autoUpgradeStatus: (json_['autoUpgradeStatus'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| endOfExtendedSupportTimestamp: |
| json_['endOfExtendedSupportTimestamp'] as core.String?, |
| endOfStandardSupportTimestamp: |
| json_['endOfStandardSupportTimestamp'] as core.String?, |
| minorTargetVersion: json_['minorTargetVersion'] as core.String?, |
| patchTargetVersion: json_['patchTargetVersion'] as core.String?, |
| pausedReason: (json_['pausedReason'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| upgradeDetails: (json_['upgradeDetails'] as core.List?) |
| ?.map( |
| (value) => UpgradeDetails.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autoUpgradeStatus = this.autoUpgradeStatus; |
| final endOfExtendedSupportTimestamp = this.endOfExtendedSupportTimestamp; |
| final endOfStandardSupportTimestamp = this.endOfStandardSupportTimestamp; |
| final minorTargetVersion = this.minorTargetVersion; |
| final patchTargetVersion = this.patchTargetVersion; |
| final pausedReason = this.pausedReason; |
| final upgradeDetails = this.upgradeDetails; |
| return { |
| 'autoUpgradeStatus': ?autoUpgradeStatus, |
| 'endOfExtendedSupportTimestamp': ?endOfExtendedSupportTimestamp, |
| 'endOfStandardSupportTimestamp': ?endOfStandardSupportTimestamp, |
| 'minorTargetVersion': ?minorTargetVersion, |
| 'patchTargetVersion': ?patchTargetVersion, |
| 'pausedReason': ?pausedReason, |
| 'upgradeDetails': ?upgradeDetails, |
| }; |
| } |
| } |
| |
| /// CompleteIPRotationRequest moves the cluster master back into single-IP mode. |
| class CompleteIPRotationRequest { |
| /// The name of the cluster. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster name) of the cluster to complete IP |
| /// rotation. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| CompleteIPRotationRequest({ |
| this.clusterId, |
| this.name, |
| this.projectId, |
| this.zone, |
| }); |
| |
| CompleteIPRotationRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// CompleteNodePoolUpgradeRequest sets the name of target node pool to complete |
| /// upgrade. |
| typedef CompleteNodePoolUpgradeRequest = $Empty; |
| |
| /// Deprecated: Compliance Posture is no longer supported. |
| /// |
| /// For more details, see |
| /// https://cloud.google.com/kubernetes-engine/docs/deprecations/posture-management-deprecation. |
| /// CompliancePostureConfig defines the settings needed to enable/disable |
| /// features for the Compliance Posture. |
| class CompliancePostureConfig { |
| /// List of enabled compliance standards. |
| core.List<ComplianceStandard>? complianceStandards; |
| |
| /// Defines the enablement mode for Compliance Posture. |
| /// Possible string values are: |
| /// - "MODE_UNSPECIFIED" : Default value not specified. |
| /// - "DISABLED" : Disables Compliance Posture features on the cluster. |
| /// - "ENABLED" : Enables Compliance Posture features on the cluster. |
| core.String? mode; |
| |
| CompliancePostureConfig({this.complianceStandards, this.mode}); |
| |
| CompliancePostureConfig.fromJson(core.Map json_) |
| : this( |
| complianceStandards: (json_['complianceStandards'] as core.List?) |
| ?.map( |
| (value) => ComplianceStandard.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| mode: json_['mode'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final complianceStandards = this.complianceStandards; |
| final mode = this.mode; |
| return {'complianceStandards': ?complianceStandards, 'mode': ?mode}; |
| } |
| } |
| |
| /// Defines the details of a compliance standard. |
| typedef ComplianceStandard = $ComplianceStandard; |
| |
| /// ConfidentialNodes is configuration for the confidential nodes feature, which |
| /// makes nodes run on confidential VMs. |
| class ConfidentialNodes { |
| /// Defines the type of technology used by the confidential node. |
| /// Possible string values are: |
| /// - "CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED" : No type specified. Do not use |
| /// this value. |
| /// - "SEV" : AMD Secure Encrypted Virtualization. |
| /// - "SEV_SNP" : AMD Secure Encrypted Virtualization - Secure Nested Paging. |
| /// - "TDX" : Intel Trust Domain eXtension. |
| core.String? confidentialInstanceType; |
| |
| /// Whether Confidential Nodes feature is enabled. |
| core.bool? enabled; |
| |
| ConfidentialNodes({this.confidentialInstanceType, this.enabled}); |
| |
| ConfidentialNodes.fromJson(core.Map json_) |
| : this( |
| confidentialInstanceType: |
| json_['confidentialInstanceType'] as core.String?, |
| enabled: json_['enabled'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final confidentialInstanceType = this.confidentialInstanceType; |
| final enabled = this.enabled; |
| return { |
| 'confidentialInstanceType': ?confidentialInstanceType, |
| 'enabled': ?enabled, |
| }; |
| } |
| } |
| |
| /// Configuration options for the Config Connector add-on. |
| class ConfigConnectorConfig { |
| /// Whether Cloud Connector is enabled for this cluster. |
| core.bool? enabled; |
| |
| ConfigConnectorConfig({this.enabled}); |
| |
| ConfigConnectorConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Parameters for controlling consumption metering. |
| class ConsumptionMeteringConfig { |
| /// Whether to enable consumption metering for this cluster. |
| /// |
| /// If enabled, a second BigQuery table will be created to hold resource |
| /// consumption records. |
| core.bool? enabled; |
| |
| ConsumptionMeteringConfig({this.enabled}); |
| |
| ConsumptionMeteringConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// ContainerdConfig contains configuration to customize containerd. |
| class ContainerdConfig { |
| /// PrivateRegistryAccessConfig is used to configure access configuration for |
| /// private container registries. |
| PrivateRegistryAccessConfig? privateRegistryAccessConfig; |
| |
| /// RegistryHostConfig configures containerd registry host configuration. |
| /// |
| /// Each registry_hosts represents a hosts.toml file. At most 25 |
| /// registry_hosts are allowed. |
| core.List<RegistryHostConfig>? registryHosts; |
| |
| /// WritableCgroups defines writable cgroups configuration for the node pool. |
| /// |
| /// Optional. |
| WritableCgroups? writableCgroups; |
| |
| ContainerdConfig({ |
| this.privateRegistryAccessConfig, |
| this.registryHosts, |
| this.writableCgroups, |
| }); |
| |
| ContainerdConfig.fromJson(core.Map json_) |
| : this( |
| privateRegistryAccessConfig: |
| json_.containsKey('privateRegistryAccessConfig') |
| ? PrivateRegistryAccessConfig.fromJson( |
| json_['privateRegistryAccessConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| registryHosts: (json_['registryHosts'] as core.List?) |
| ?.map( |
| (value) => RegistryHostConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| writableCgroups: json_.containsKey('writableCgroups') |
| ? WritableCgroups.fromJson( |
| json_['writableCgroups'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final privateRegistryAccessConfig = this.privateRegistryAccessConfig; |
| final registryHosts = this.registryHosts; |
| final writableCgroups = this.writableCgroups; |
| return { |
| 'privateRegistryAccessConfig': ?privateRegistryAccessConfig, |
| 'registryHosts': ?registryHosts, |
| 'writableCgroups': ?writableCgroups, |
| }; |
| } |
| } |
| |
| /// ControlPlaneEgress defines the settings needed to enable control plane |
| /// egress control. |
| class ControlPlaneEgress { |
| /// Defines the mode of control plane egress. |
| /// Possible string values are: |
| /// - "MODE_UNSPECIFIED" : Default value not specified. |
| /// - "VIA_CONTROL_PLANE" : Control plane has public IP and no restriction on |
| /// egress. |
| /// - "NONE" : No public IP on control plane and only internal allowlisted |
| /// egress. |
| core.String? mode; |
| |
| ControlPlaneEgress({this.mode}); |
| |
| ControlPlaneEgress.fromJson(core.Map json_) |
| : this(mode: json_['mode'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final mode = this.mode; |
| return {'mode': ?mode}; |
| } |
| } |
| |
| /// Configuration for all of the cluster's control plane endpoints. |
| class ControlPlaneEndpointsConfig { |
| /// DNS endpoint configuration. |
| DNSEndpointConfig? dnsEndpointConfig; |
| |
| /// IP endpoints configuration. |
| IPEndpointsConfig? ipEndpointsConfig; |
| |
| ControlPlaneEndpointsConfig({this.dnsEndpointConfig, this.ipEndpointsConfig}); |
| |
| ControlPlaneEndpointsConfig.fromJson(core.Map json_) |
| : this( |
| dnsEndpointConfig: json_.containsKey('dnsEndpointConfig') |
| ? DNSEndpointConfig.fromJson( |
| json_['dnsEndpointConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ipEndpointsConfig: json_.containsKey('ipEndpointsConfig') |
| ? IPEndpointsConfig.fromJson( |
| json_['ipEndpointsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final dnsEndpointConfig = this.dnsEndpointConfig; |
| final ipEndpointsConfig = this.ipEndpointsConfig; |
| return { |
| 'dnsEndpointConfig': ?dnsEndpointConfig, |
| 'ipEndpointsConfig': ?ipEndpointsConfig, |
| }; |
| } |
| } |
| |
| /// Configuration for fine-grained cost management feature. |
| class CostManagementConfig { |
| /// Whether the feature is enabled or not. |
| core.bool? enabled; |
| |
| CostManagementConfig({this.enabled}); |
| |
| CostManagementConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Contains config to modify node-level parameters for container restart |
| /// behavior. |
| class CrashLoopBackOffConfig { |
| /// The maximum duration the backoff delay can accrue to for container |
| /// restarts, minimum 1 second, maximum 300 seconds. |
| /// |
| /// If not set, defaults to the internal crashloopbackoff maximum. The string |
| /// must be a sequence of decimal numbers, each with optional fraction and a |
| /// unit suffix, such as "300ms". Valid time units are "ns", "us" (or "µs"), |
| /// "ms", "s", "m", "h". See |
| /// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#configurable-container-restart-delay |
| /// for more details. |
| /// |
| /// Optional. |
| core.String? maxContainerRestartPeriod; |
| |
| CrashLoopBackOffConfig({this.maxContainerRestartPeriod}); |
| |
| CrashLoopBackOffConfig.fromJson(core.Map json_) |
| : this( |
| maxContainerRestartPeriod: |
| json_['maxContainerRestartPeriod'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final maxContainerRestartPeriod = this.maxContainerRestartPeriod; |
| return {'maxContainerRestartPeriod': ?maxContainerRestartPeriod}; |
| } |
| } |
| |
| /// CreateClusterRequest creates a cluster. |
| class CreateClusterRequest { |
| /// A |
| /// [cluster resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters) |
| /// |
| /// Required. |
| Cluster? cluster; |
| |
| /// The parent (project and location) where the cluster will be created. |
| /// |
| /// Specified in the format `projects / * /locations / * `. |
| core.String? parent; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| CreateClusterRequest({this.cluster, this.parent, this.projectId, this.zone}); |
| |
| CreateClusterRequest.fromJson(core.Map json_) |
| : this( |
| cluster: json_.containsKey('cluster') |
| ? Cluster.fromJson( |
| json_['cluster'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| parent: json_['parent'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final cluster = this.cluster; |
| final parent = this.parent; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'cluster': ?cluster, |
| 'parent': ?parent, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// CreateNodePoolRequest creates a node pool for a cluster. |
| class CreateNodePoolRequest { |
| /// The name of the cluster. |
| /// |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The node pool to create. |
| /// |
| /// Required. |
| NodePool? nodePool; |
| |
| /// The parent (project, location, cluster name) where the node pool will be |
| /// created. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? parent; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the parent field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| CreateNodePoolRequest({ |
| this.clusterId, |
| this.nodePool, |
| this.parent, |
| this.projectId, |
| this.zone, |
| }); |
| |
| CreateNodePoolRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| nodePool: json_.containsKey('nodePool') |
| ? NodePool.fromJson( |
| json_['nodePool'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| parent: json_['parent'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final nodePool = this.nodePool; |
| final parent = this.parent; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'nodePool': ?nodePool, |
| 'parent': ?parent, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// DNSConfig contains the desired set of options for configuring clusterDNS. |
| class DNSConfig { |
| /// The domain used in Additive VPC scope. |
| /// |
| /// Optional. |
| core.String? additiveVpcScopeDnsDomain; |
| |
| /// cluster_dns indicates which in-cluster DNS provider should be used. |
| /// Possible string values are: |
| /// - "PROVIDER_UNSPECIFIED" : Default value |
| /// - "PLATFORM_DEFAULT" : Use GKE default DNS provider(kube-dns) for DNS |
| /// resolution. |
| /// - "CLOUD_DNS" : Use CloudDNS for DNS resolution. |
| /// - "KUBE_DNS" : Use KubeDNS for DNS resolution. |
| core.String? clusterDns; |
| |
| /// cluster_dns_domain is the suffix used for all cluster service records. |
| core.String? clusterDnsDomain; |
| |
| /// cluster_dns_scope indicates the scope of access to cluster DNS records. |
| /// Possible string values are: |
| /// - "DNS_SCOPE_UNSPECIFIED" : Default value, will be inferred as cluster |
| /// scope. |
| /// - "CLUSTER_SCOPE" : DNS records are accessible from within the cluster. |
| /// - "VPC_SCOPE" : DNS records are accessible from within the VPC. |
| core.String? clusterDnsScope; |
| |
| DNSConfig({ |
| this.additiveVpcScopeDnsDomain, |
| this.clusterDns, |
| this.clusterDnsDomain, |
| this.clusterDnsScope, |
| }); |
| |
| DNSConfig.fromJson(core.Map json_) |
| : this( |
| additiveVpcScopeDnsDomain: |
| json_['additiveVpcScopeDnsDomain'] as core.String?, |
| clusterDns: json_['clusterDns'] as core.String?, |
| clusterDnsDomain: json_['clusterDnsDomain'] as core.String?, |
| clusterDnsScope: json_['clusterDnsScope'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final additiveVpcScopeDnsDomain = this.additiveVpcScopeDnsDomain; |
| final clusterDns = this.clusterDns; |
| final clusterDnsDomain = this.clusterDnsDomain; |
| final clusterDnsScope = this.clusterDnsScope; |
| return { |
| 'additiveVpcScopeDnsDomain': ?additiveVpcScopeDnsDomain, |
| 'clusterDns': ?clusterDns, |
| 'clusterDnsDomain': ?clusterDnsDomain, |
| 'clusterDnsScope': ?clusterDnsScope, |
| }; |
| } |
| } |
| |
| /// Describes the configuration of a DNS endpoint. |
| class DNSEndpointConfig { |
| /// Controls whether user traffic is allowed over this endpoint. |
| /// |
| /// Note that Google-managed services may still use the endpoint even if this |
| /// is false. |
| core.bool? allowExternalTraffic; |
| |
| /// Controls whether the k8s certs auth is allowed via DNS. |
| core.bool? enableK8sCertsViaDns; |
| |
| /// Controls whether the k8s token auth is allowed via DNS. |
| core.bool? enableK8sTokensViaDns; |
| |
| /// The cluster's DNS endpoint configuration. |
| /// |
| /// A DNS format address. This is accessible from the public internet. Ex: |
| /// uid.us-central1.gke.goog. Always present, but the behavior may change |
| /// according to the value of DNSEndpointConfig.allow_external_traffic. |
| /// |
| /// Output only. |
| core.String? endpoint; |
| |
| DNSEndpointConfig({ |
| this.allowExternalTraffic, |
| this.enableK8sCertsViaDns, |
| this.enableK8sTokensViaDns, |
| this.endpoint, |
| }); |
| |
| DNSEndpointConfig.fromJson(core.Map json_) |
| : this( |
| allowExternalTraffic: json_['allowExternalTraffic'] as core.bool?, |
| enableK8sCertsViaDns: json_['enableK8sCertsViaDns'] as core.bool?, |
| enableK8sTokensViaDns: json_['enableK8sTokensViaDns'] as core.bool?, |
| endpoint: json_['endpoint'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final allowExternalTraffic = this.allowExternalTraffic; |
| final enableK8sCertsViaDns = this.enableK8sCertsViaDns; |
| final enableK8sTokensViaDns = this.enableK8sTokensViaDns; |
| final endpoint = this.endpoint; |
| return { |
| 'allowExternalTraffic': ?allowExternalTraffic, |
| 'enableK8sCertsViaDns': ?enableK8sCertsViaDns, |
| 'enableK8sTokensViaDns': ?enableK8sTokensViaDns, |
| 'endpoint': ?endpoint, |
| }; |
| } |
| } |
| |
| /// Time window specified for daily maintenance operations. |
| class DailyMaintenanceWindow { |
| /// Duration of the time window, automatically chosen to be smallest possible |
| /// in the given scenario. |
| /// |
| /// Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format |
| /// "PTnHnMnS". |
| /// |
| /// Output only. |
| core.String? duration; |
| |
| /// Time within the maintenance window to start the maintenance operations. |
| /// |
| /// Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) |
| /// format "HH:MM", where HH : \[00-23\] and MM : \[00-59\] GMT. |
| core.String? startTime; |
| |
| DailyMaintenanceWindow({this.duration, this.startTime}); |
| |
| DailyMaintenanceWindow.fromJson(core.Map json_) |
| : this( |
| duration: json_['duration'] as core.String?, |
| startTime: json_['startTime'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final duration = this.duration; |
| final startTime = this.startTime; |
| return {'duration': ?duration, 'startTime': ?startTime}; |
| } |
| } |
| |
| /// Configuration of etcd encryption. |
| class DatabaseEncryption { |
| /// The current state of etcd encryption. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "CURRENT_STATE_UNSPECIFIED" : Should never be set |
| /// - "CURRENT_STATE_ENCRYPTED" : Secrets in etcd are encrypted. |
| /// - "CURRENT_STATE_DECRYPTED" : Secrets in etcd are stored in plain text (at |
| /// etcd level) - this is unrelated to Compute Engine level full disk |
| /// encryption. |
| /// - "CURRENT_STATE_ENCRYPTION_PENDING" : Encryption (or re-encryption with a |
| /// different CloudKMS key) of Secrets is in progress. |
| /// - "CURRENT_STATE_ENCRYPTION_ERROR" : Encryption (or re-encryption with a |
| /// different CloudKMS key) of Secrets in etcd encountered an error. |
| /// - "CURRENT_STATE_DECRYPTION_PENDING" : De-crypting Secrets to plain text |
| /// in etcd is in progress. |
| /// - "CURRENT_STATE_DECRYPTION_ERROR" : De-crypting Secrets to plain text in |
| /// etcd encountered an error. |
| /// - "CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_ENABLED" : Encryption of all |
| /// objects in the storage is enabled. It does not guarantee that all objects |
| /// in the storage are encrypted, but eventually they will be. |
| /// - "CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_PENDING" : Enablement of the |
| /// encryption of all objects in storage is pending. |
| /// - "CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_ERROR" : Enabling encryption of |
| /// all objects in storage encountered an error. |
| core.String? currentState; |
| |
| /// Keys in use by the cluster for decrypting existing objects, in addition to |
| /// the key in `key_name`. |
| /// |
| /// Each item is a CloudKMS key resource. |
| /// |
| /// Output only. |
| core.List<core.String>? decryptionKeys; |
| |
| /// Name of CloudKMS key to use for the encryption of secrets in etcd. |
| /// |
| /// Ex. |
| /// projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key |
| core.String? keyName; |
| |
| /// Records errors seen during DatabaseEncryption update operations. |
| /// |
| /// Output only. |
| core.List<OperationError>? lastOperationErrors; |
| |
| /// The desired state of etcd encryption. |
| /// Possible string values are: |
| /// - "UNKNOWN" : Should never be set |
| /// - "ENCRYPTED" : Secrets in etcd are encrypted. |
| /// - "DECRYPTED" : Secrets in etcd are stored in plain text (at etcd level) - |
| /// this is unrelated to Compute Engine level full disk encryption. |
| /// - "ALL_OBJECTS_ENCRYPTION_ENABLED" : Encryption of all objects in the |
| /// storage is enabled. There is no guarantee that all objects in the storage |
| /// are encrypted, but eventually they will be. |
| core.String? state; |
| |
| DatabaseEncryption({ |
| this.currentState, |
| this.decryptionKeys, |
| this.keyName, |
| this.lastOperationErrors, |
| this.state, |
| }); |
| |
| DatabaseEncryption.fromJson(core.Map json_) |
| : this( |
| currentState: json_['currentState'] as core.String?, |
| decryptionKeys: (json_['decryptionKeys'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| keyName: json_['keyName'] as core.String?, |
| lastOperationErrors: (json_['lastOperationErrors'] as core.List?) |
| ?.map( |
| (value) => OperationError.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| state: json_['state'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final currentState = this.currentState; |
| final decryptionKeys = this.decryptionKeys; |
| final keyName = this.keyName; |
| final lastOperationErrors = this.lastOperationErrors; |
| final state = this.state; |
| return { |
| 'currentState': ?currentState, |
| 'decryptionKeys': ?decryptionKeys, |
| 'keyName': ?keyName, |
| 'lastOperationErrors': ?lastOperationErrors, |
| 'state': ?state, |
| }; |
| } |
| } |
| |
| /// Provisions a new, separate local NVMe SSD exclusively for swap. |
| class DedicatedLocalSsdProfile { |
| /// The number of physical local NVMe SSD disks to attach. |
| core.String? diskCount; |
| |
| DedicatedLocalSsdProfile({this.diskCount}); |
| |
| DedicatedLocalSsdProfile.fromJson(core.Map json_) |
| : this(diskCount: json_['diskCount'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final diskCount = this.diskCount; |
| return {'diskCount': ?diskCount}; |
| } |
| } |
| |
| /// DefaultComputeClassConfig defines default compute class configuration. |
| class DefaultComputeClassConfig { |
| /// Enables default compute class. |
| core.bool? enabled; |
| |
| DefaultComputeClassConfig({this.enabled}); |
| |
| DefaultComputeClassConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// DefaultSnatStatus contains the desired state of whether default sNAT should |
| /// be disabled on the cluster. |
| class DefaultSnatStatus { |
| /// Disables cluster default sNAT rules. |
| core.bool? disabled; |
| |
| DefaultSnatStatus({this.disabled}); |
| |
| DefaultSnatStatus.fromJson(core.Map json_) |
| : this(disabled: json_['disabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disabled = this.disabled; |
| return {'disabled': ?disabled}; |
| } |
| } |
| |
| /// DesiredAdditionalIPRangesConfig is a wrapper used for cluster update |
| /// operation and contains multiple AdditionalIPRangesConfigs. |
| class DesiredAdditionalIPRangesConfig { |
| /// List of additional IP ranges configs where each AdditionalIPRangesConfig |
| /// corresponds to one subnetwork's IP ranges |
| core.List<AdditionalIPRangesConfig>? additionalIpRangesConfigs; |
| |
| DesiredAdditionalIPRangesConfig({this.additionalIpRangesConfigs}); |
| |
| DesiredAdditionalIPRangesConfig.fromJson(core.Map json_) |
| : this( |
| additionalIpRangesConfigs: |
| (json_['additionalIpRangesConfigs'] as core.List?) |
| ?.map( |
| (value) => AdditionalIPRangesConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final additionalIpRangesConfigs = this.additionalIpRangesConfigs; |
| return {'additionalIpRangesConfigs': ?additionalIpRangesConfigs}; |
| } |
| } |
| |
| /// DesiredEnterpriseConfig is a wrapper used for updating enterprise_config. |
| /// |
| /// Deprecated: GKE Enterprise features are now available without an Enterprise |
| /// tier. |
| class DesiredEnterpriseConfig { |
| /// desired_tier specifies the desired tier of the cluster. |
| /// Possible string values are: |
| /// - "CLUSTER_TIER_UNSPECIFIED" : CLUSTER_TIER_UNSPECIFIED is when |
| /// cluster_tier is not set. |
| /// - "STANDARD" : STANDARD indicates a standard GKE cluster. |
| /// - "ENTERPRISE" : ENTERPRISE indicates a GKE Enterprise cluster. |
| core.String? desiredTier; |
| |
| DesiredEnterpriseConfig({this.desiredTier}); |
| |
| DesiredEnterpriseConfig.fromJson(core.Map json_) |
| : this(desiredTier: json_['desiredTier'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final desiredTier = this.desiredTier; |
| return {'desiredTier': ?desiredTier}; |
| } |
| } |
| |
| /// DisruptionBudget defines the upgrade disruption budget for the cluster |
| /// control plane. |
| class DisruptionBudget { |
| /// The last time a disruption was performed on the control plane. |
| /// |
| /// Output only. |
| core.String? lastDisruptionTime; |
| |
| /// The last time a minor version upgrade was performed on the control plane. |
| /// |
| /// Output only. |
| core.String? lastMinorVersionDisruptionTime; |
| |
| /// The minimum duration between two minor version upgrades of the control |
| /// plane. |
| /// |
| /// Optional. |
| core.String? minorVersionDisruptionInterval; |
| |
| /// The minimum duration between two patch version upgrades of the control |
| /// plane. |
| /// |
| /// Optional. |
| core.String? patchVersionDisruptionInterval; |
| |
| DisruptionBudget({ |
| this.lastDisruptionTime, |
| this.lastMinorVersionDisruptionTime, |
| this.minorVersionDisruptionInterval, |
| this.patchVersionDisruptionInterval, |
| }); |
| |
| DisruptionBudget.fromJson(core.Map json_) |
| : this( |
| lastDisruptionTime: json_['lastDisruptionTime'] as core.String?, |
| lastMinorVersionDisruptionTime: |
| json_['lastMinorVersionDisruptionTime'] as core.String?, |
| minorVersionDisruptionInterval: |
| json_['minorVersionDisruptionInterval'] as core.String?, |
| patchVersionDisruptionInterval: |
| json_['patchVersionDisruptionInterval'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final lastDisruptionTime = this.lastDisruptionTime; |
| final lastMinorVersionDisruptionTime = this.lastMinorVersionDisruptionTime; |
| final minorVersionDisruptionInterval = this.minorVersionDisruptionInterval; |
| final patchVersionDisruptionInterval = this.patchVersionDisruptionInterval; |
| return { |
| 'lastDisruptionTime': ?lastDisruptionTime, |
| 'lastMinorVersionDisruptionTime': ?lastMinorVersionDisruptionTime, |
| 'minorVersionDisruptionInterval': ?minorVersionDisruptionInterval, |
| 'patchVersionDisruptionInterval': ?patchVersionDisruptionInterval, |
| }; |
| } |
| } |
| |
| /// Configuration for NodeLocal DNSCache |
| class DnsCacheConfig { |
| /// Whether NodeLocal DNSCache is enabled for this cluster. |
| core.bool? enabled; |
| |
| DnsCacheConfig({this.enabled}); |
| |
| DnsCacheConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// A generic empty message that you can re-use to avoid defining duplicated |
| /// empty messages in your APIs. |
| /// |
| /// A typical example is to use it as the request or the response type of an API |
| /// method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns |
| /// (google.protobuf.Empty); } |
| typedef Empty = $Empty; |
| |
| /// Defines encryption settings for the swap space. |
| class EncryptionConfig { |
| /// If true, swap space will not be encrypted. |
| /// |
| /// Defaults to false (encrypted). |
| /// |
| /// Optional. |
| core.bool? disabled; |
| |
| EncryptionConfig({this.disabled}); |
| |
| EncryptionConfig.fromJson(core.Map json_) |
| : this(disabled: json_['disabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disabled = this.disabled; |
| return {'disabled': ?disabled}; |
| } |
| } |
| |
| /// EnterpriseConfig is the cluster enterprise configuration. |
| /// |
| /// Deprecated: GKE Enterprise features are now available without an Enterprise |
| /// tier. |
| class EnterpriseConfig { |
| /// cluster_tier indicates the effective tier of the cluster. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "CLUSTER_TIER_UNSPECIFIED" : CLUSTER_TIER_UNSPECIFIED is when |
| /// cluster_tier is not set. |
| /// - "STANDARD" : STANDARD indicates a standard GKE cluster. |
| /// - "ENTERPRISE" : ENTERPRISE indicates a GKE Enterprise cluster. |
| core.String? clusterTier; |
| |
| /// desired_tier specifies the desired tier of the cluster. |
| /// Possible string values are: |
| /// - "CLUSTER_TIER_UNSPECIFIED" : CLUSTER_TIER_UNSPECIFIED is when |
| /// cluster_tier is not set. |
| /// - "STANDARD" : STANDARD indicates a standard GKE cluster. |
| /// - "ENTERPRISE" : ENTERPRISE indicates a GKE Enterprise cluster. |
| core.String? desiredTier; |
| |
| EnterpriseConfig({this.clusterTier, this.desiredTier}); |
| |
| EnterpriseConfig.fromJson(core.Map json_) |
| : this( |
| clusterTier: json_['clusterTier'] as core.String?, |
| desiredTier: json_['desiredTier'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterTier = this.clusterTier; |
| final desiredTier = this.desiredTier; |
| return {'clusterTier': ?clusterTier, 'desiredTier': ?desiredTier}; |
| } |
| } |
| |
| /// Swap on the local SSD shared with pod ephemeral storage. |
| class EphemeralLocalSsdProfile { |
| /// Specifies the size of the swap space in gibibytes (GiB). |
| core.String? swapSizeGib; |
| |
| /// Specifies the size of the swap space as a percentage of the ephemeral |
| /// local SSD capacity. |
| core.int? swapSizePercent; |
| |
| EphemeralLocalSsdProfile({this.swapSizeGib, this.swapSizePercent}); |
| |
| EphemeralLocalSsdProfile.fromJson(core.Map json_) |
| : this( |
| swapSizeGib: json_['swapSizeGib'] as core.String?, |
| swapSizePercent: json_['swapSizePercent'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final swapSizeGib = this.swapSizeGib; |
| final swapSizePercent = this.swapSizePercent; |
| return {'swapSizeGib': ?swapSizeGib, 'swapSizePercent': ?swapSizePercent}; |
| } |
| } |
| |
| /// EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral |
| /// storage using Local SSDs. |
| class EphemeralStorageLocalSsdConfig { |
| /// Number of local SSDs to use for GKE Data Cache. |
| core.int? dataCacheCount; |
| |
| /// Number of local SSDs to use to back ephemeral storage. |
| /// |
| /// Uses NVMe interfaces. A zero (or unset) value has different meanings |
| /// depending on machine type being used: 1. For pre-Gen3 machines, which |
| /// support flexible numbers of local ssds, zero (or unset) means to disable |
| /// using local SSDs as ephemeral storage. The limit for this value is |
| /// dependent upon the maximum number of disk available on a machine per zone. |
| /// See: https://cloud.google.com/compute/docs/disks/local-ssd for more |
| /// information. 2. For Gen3 machines which dictate a specific number of local |
| /// ssds, zero (or unset) means to use the default number of local ssds that |
| /// goes with that machine type. For example, for a c3-standard-8-lssd |
| /// machine, 2 local ssds would be provisioned. For c3-standard-8 (which |
| /// doesn't support local ssds), 0 will be provisioned. See |
| /// https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds |
| /// for more info. |
| core.int? localSsdCount; |
| |
| EphemeralStorageLocalSsdConfig({this.dataCacheCount, this.localSsdCount}); |
| |
| EphemeralStorageLocalSsdConfig.fromJson(core.Map json_) |
| : this( |
| dataCacheCount: json_['dataCacheCount'] as core.int?, |
| localSsdCount: json_['localSsdCount'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final dataCacheCount = this.dataCacheCount; |
| final localSsdCount = this.localSsdCount; |
| return {'dataCacheCount': ?dataCacheCount, 'localSsdCount': ?localSsdCount}; |
| } |
| } |
| |
| /// Eviction grace periods are grace periods for each eviction signal. |
| class EvictionGracePeriod { |
| /// Grace period for eviction due to imagefs available signal. |
| /// |
| /// Sample format: "10s". Must be \>= 0. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? imagefsAvailable; |
| |
| /// Grace period for eviction due to imagefs inodes free signal. |
| /// |
| /// Sample format: "10s". Must be \>= 0. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? imagefsInodesFree; |
| |
| /// Grace period for eviction due to memory available signal. |
| /// |
| /// Sample format: "10s". Must be \>= 0. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? memoryAvailable; |
| |
| /// Grace period for eviction due to nodefs available signal. |
| /// |
| /// Sample format: "10s". Must be \>= 0. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? nodefsAvailable; |
| |
| /// Grace period for eviction due to nodefs inodes free signal. |
| /// |
| /// Sample format: "10s". Must be \>= 0. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? nodefsInodesFree; |
| |
| /// Grace period for eviction due to pid available signal. |
| /// |
| /// Sample format: "10s". Must be \>= 0. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? pidAvailable; |
| |
| EvictionGracePeriod({ |
| this.imagefsAvailable, |
| this.imagefsInodesFree, |
| this.memoryAvailable, |
| this.nodefsAvailable, |
| this.nodefsInodesFree, |
| this.pidAvailable, |
| }); |
| |
| EvictionGracePeriod.fromJson(core.Map json_) |
| : this( |
| imagefsAvailable: json_['imagefsAvailable'] as core.String?, |
| imagefsInodesFree: json_['imagefsInodesFree'] as core.String?, |
| memoryAvailable: json_['memoryAvailable'] as core.String?, |
| nodefsAvailable: json_['nodefsAvailable'] as core.String?, |
| nodefsInodesFree: json_['nodefsInodesFree'] as core.String?, |
| pidAvailable: json_['pidAvailable'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final imagefsAvailable = this.imagefsAvailable; |
| final imagefsInodesFree = this.imagefsInodesFree; |
| final memoryAvailable = this.memoryAvailable; |
| final nodefsAvailable = this.nodefsAvailable; |
| final nodefsInodesFree = this.nodefsInodesFree; |
| final pidAvailable = this.pidAvailable; |
| return { |
| 'imagefsAvailable': ?imagefsAvailable, |
| 'imagefsInodesFree': ?imagefsInodesFree, |
| 'memoryAvailable': ?memoryAvailable, |
| 'nodefsAvailable': ?nodefsAvailable, |
| 'nodefsInodesFree': ?nodefsInodesFree, |
| 'pidAvailable': ?pidAvailable, |
| }; |
| } |
| } |
| |
| /// Eviction minimum reclaims are the resource amounts of minimum reclaims for |
| /// each eviction signal. |
| class EvictionMinimumReclaim { |
| /// Minimum reclaim for eviction due to imagefs available signal. |
| /// |
| /// Only take percentage value for now. Sample format: "10%". Must be \<=10%. |
| /// See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? imagefsAvailable; |
| |
| /// Minimum reclaim for eviction due to imagefs inodes free signal. |
| /// |
| /// Only take percentage value for now. Sample format: "10%". Must be \<=10%. |
| /// See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? imagefsInodesFree; |
| |
| /// Minimum reclaim for eviction due to memory available signal. |
| /// |
| /// Only take percentage value for now. Sample format: "10%". Must be \<=10%. |
| /// See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? memoryAvailable; |
| |
| /// Minimum reclaim for eviction due to nodefs available signal. |
| /// |
| /// Only take percentage value for now. Sample format: "10%". Must be \<=10%. |
| /// See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? nodefsAvailable; |
| |
| /// Minimum reclaim for eviction due to nodefs inodes free signal. |
| /// |
| /// Only take percentage value for now. Sample format: "10%". Must be \<=10%. |
| /// See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? nodefsInodesFree; |
| |
| /// Minimum reclaim for eviction due to pid available signal. |
| /// |
| /// Only take percentage value for now. Sample format: "10%". Must be \<=10%. |
| /// See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? pidAvailable; |
| |
| EvictionMinimumReclaim({ |
| this.imagefsAvailable, |
| this.imagefsInodesFree, |
| this.memoryAvailable, |
| this.nodefsAvailable, |
| this.nodefsInodesFree, |
| this.pidAvailable, |
| }); |
| |
| EvictionMinimumReclaim.fromJson(core.Map json_) |
| : this( |
| imagefsAvailable: json_['imagefsAvailable'] as core.String?, |
| imagefsInodesFree: json_['imagefsInodesFree'] as core.String?, |
| memoryAvailable: json_['memoryAvailable'] as core.String?, |
| nodefsAvailable: json_['nodefsAvailable'] as core.String?, |
| nodefsInodesFree: json_['nodefsInodesFree'] as core.String?, |
| pidAvailable: json_['pidAvailable'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final imagefsAvailable = this.imagefsAvailable; |
| final imagefsInodesFree = this.imagefsInodesFree; |
| final memoryAvailable = this.memoryAvailable; |
| final nodefsAvailable = this.nodefsAvailable; |
| final nodefsInodesFree = this.nodefsInodesFree; |
| final pidAvailable = this.pidAvailable; |
| return { |
| 'imagefsAvailable': ?imagefsAvailable, |
| 'imagefsInodesFree': ?imagefsInodesFree, |
| 'memoryAvailable': ?memoryAvailable, |
| 'nodefsAvailable': ?nodefsAvailable, |
| 'nodefsInodesFree': ?nodefsInodesFree, |
| 'pidAvailable': ?pidAvailable, |
| }; |
| } |
| } |
| |
| /// Eviction signals are the current state of a particular resource at a |
| /// specific point in time. |
| /// |
| /// The kubelet uses eviction signals to make eviction decisions by comparing |
| /// the signals to eviction thresholds, which are the minimum amount of the |
| /// resource that should be available on the node. |
| class EvictionSignals { |
| /// Amount of storage available on filesystem that container runtime uses for |
| /// storing images layers. |
| /// |
| /// If the container filesystem and image filesystem are not separate, then |
| /// imagefs can store both image layers and writeable layers. Defines the |
| /// amount of "imagefs.available" signal in kubelet. Default is unset, if not |
| /// specified in the kubelet config. It takses percentage value for now. |
| /// Sample format: "30%". Must be \>= 15% and \<= 50%. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? imagefsAvailable; |
| |
| /// Amount of inodes available on filesystem that container runtime uses for |
| /// storing images layers. |
| /// |
| /// Defines the amount of "imagefs.inodesFree" signal in kubelet. Default is |
| /// unset, if not specified in the kubelet config. Linux only. It takses |
| /// percentage value for now. Sample format: "30%". Must be \>= 5% and \<= |
| /// 50%. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? imagefsInodesFree; |
| |
| /// Memory available (i.e. capacity - workingSet), in bytes. |
| /// |
| /// Defines the amount of "memory.available" signal in kubelet. Default is |
| /// unset, if not specified in the kubelet config. Format: positive number + |
| /// unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be \>= 100Mi |
| /// and \<= 50% of the node's memory. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? memoryAvailable; |
| |
| /// Amount of storage available on filesystem that kubelet uses for volumes, |
| /// daemon logs, etc. |
| /// |
| /// Defines the amount of "nodefs.available" signal in kubelet. Default is |
| /// unset, if not specified in the kubelet config. It takses percentage value |
| /// for now. Sample format: "30%". Must be \>= 10% and \<= 50%. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? nodefsAvailable; |
| |
| /// Amount of inodes available on filesystem that kubelet uses for volumes, |
| /// daemon logs, etc. |
| /// |
| /// Defines the amount of "nodefs.inodesFree" signal in kubelet. Default is |
| /// unset, if not specified in the kubelet config. Linux only. It takses |
| /// percentage value for now. Sample format: "30%". Must be \>= 5% and \<= |
| /// 50%. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? nodefsInodesFree; |
| |
| /// Amount of PID available for pod allocation. |
| /// |
| /// Defines the amount of "pid.available" signal in kubelet. Default is unset, |
| /// if not specified in the kubelet config. It takses percentage value for |
| /// now. Sample format: "30%". Must be \>= 10% and \<= 50%. See |
| /// https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals |
| /// |
| /// Optional. |
| core.String? pidAvailable; |
| |
| EvictionSignals({ |
| this.imagefsAvailable, |
| this.imagefsInodesFree, |
| this.memoryAvailable, |
| this.nodefsAvailable, |
| this.nodefsInodesFree, |
| this.pidAvailable, |
| }); |
| |
| EvictionSignals.fromJson(core.Map json_) |
| : this( |
| imagefsAvailable: json_['imagefsAvailable'] as core.String?, |
| imagefsInodesFree: json_['imagefsInodesFree'] as core.String?, |
| memoryAvailable: json_['memoryAvailable'] as core.String?, |
| nodefsAvailable: json_['nodefsAvailable'] as core.String?, |
| nodefsInodesFree: json_['nodefsInodesFree'] as core.String?, |
| pidAvailable: json_['pidAvailable'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final imagefsAvailable = this.imagefsAvailable; |
| final imagefsInodesFree = this.imagefsInodesFree; |
| final memoryAvailable = this.memoryAvailable; |
| final nodefsAvailable = this.nodefsAvailable; |
| final nodefsInodesFree = this.nodefsInodesFree; |
| final pidAvailable = this.pidAvailable; |
| return { |
| 'imagefsAvailable': ?imagefsAvailable, |
| 'imagefsInodesFree': ?imagefsInodesFree, |
| 'memoryAvailable': ?memoryAvailable, |
| 'nodefsAvailable': ?nodefsAvailable, |
| 'nodefsInodesFree': ?nodefsInodesFree, |
| 'pidAvailable': ?pidAvailable, |
| }; |
| } |
| } |
| |
| /// Configuration of Fast Socket feature. |
| class FastSocket { |
| /// Whether Fast Socket features are enabled in the node pool. |
| core.bool? enabled; |
| |
| FastSocket({this.enabled}); |
| |
| FastSocket.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Allows filtering to one or more specific event types. |
| /// |
| /// If event types are present, those and only those event types will be |
| /// transmitted to the cluster. Other types will be skipped. If no filter is |
| /// specified, or no event types are present, all event types will be sent |
| class Filter { |
| /// Event types to allowlist. |
| core.List<core.String>? eventType; |
| |
| Filter({this.eventType}); |
| |
| Filter.fromJson(core.Map json_) |
| : this( |
| eventType: (json_['eventType'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final eventType = this.eventType; |
| return {'eventType': ?eventType}; |
| } |
| } |
| |
| /// Fleet is the fleet configuration for the cluster. |
| class Fleet { |
| /// The full resource name of the registered fleet membership of the cluster, |
| /// in the format `//gkehub.googleapis.com/projects / * /locations / * |
| /// /memberships / * `. |
| /// |
| /// Output only. |
| core.String? membership; |
| |
| /// The type of the cluster's fleet membership. |
| /// Possible string values are: |
| /// - "MEMBERSHIP_TYPE_UNSPECIFIED" : The MembershipType is not set. |
| /// - "LIGHTWEIGHT" : The membership supports only lightweight compatible |
| /// features. |
| core.String? membershipType; |
| |
| /// Whether the cluster has been registered through the fleet API. |
| /// |
| /// Output only. |
| core.bool? preRegistered; |
| |
| /// The Fleet host project(project ID or project number) where this cluster |
| /// will be registered to. |
| /// |
| /// This field cannot be changed after the cluster has been registered. |
| core.String? project; |
| |
| Fleet({ |
| this.membership, |
| this.membershipType, |
| this.preRegistered, |
| this.project, |
| }); |
| |
| Fleet.fromJson(core.Map json_) |
| : this( |
| membership: json_['membership'] as core.String?, |
| membershipType: json_['membershipType'] as core.String?, |
| preRegistered: json_['preRegistered'] as core.bool?, |
| project: json_['project'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final membership = this.membership; |
| final membershipType = this.membershipType; |
| final preRegistered = this.preRegistered; |
| final project = this.project; |
| return { |
| 'membership': ?membership, |
| 'membershipType': ?membershipType, |
| 'preRegistered': ?preRegistered, |
| 'project': ?project, |
| }; |
| } |
| } |
| |
| /// GCPSecretManagerCertificateConfig configures a secret from |
| /// [Secret Manager](https://cloud.google.com/secret-manager). |
| class GCPSecretManagerCertificateConfig { |
| /// Secret URI, in the form |
| /// "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION". |
| /// |
| /// Version can be fixed (e.g. "2") or "latest" |
| core.String? secretUri; |
| |
| GCPSecretManagerCertificateConfig({this.secretUri}); |
| |
| GCPSecretManagerCertificateConfig.fromJson(core.Map json_) |
| : this(secretUri: json_['secretUri'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final secretUri = this.secretUri; |
| return {'secretUri': ?secretUri}; |
| } |
| } |
| |
| /// GPUDirectConfig specifies the GPU direct strategy on the node pool. |
| class GPUDirectConfig { |
| /// The type of GPU direct strategy to enable on the node pool. |
| /// Possible string values are: |
| /// - "GPU_DIRECT_STRATEGY_UNSPECIFIED" : Default value. No GPU Direct |
| /// strategy is enabled on the node. |
| /// - "RDMA" : GPUDirect-RDMA on A3 Ultra, and A4 machine types |
| core.String? gpuDirectStrategy; |
| |
| GPUDirectConfig({this.gpuDirectStrategy}); |
| |
| GPUDirectConfig.fromJson(core.Map json_) |
| : this(gpuDirectStrategy: json_['gpuDirectStrategy'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final gpuDirectStrategy = this.gpuDirectStrategy; |
| return {'gpuDirectStrategy': ?gpuDirectStrategy}; |
| } |
| } |
| |
| /// GPUDriverInstallationConfig specifies the version of GPU driver to be auto |
| /// installed. |
| class GPUDriverInstallationConfig { |
| /// Mode for how the GPU driver is installed. |
| /// Possible string values are: |
| /// - "GPU_DRIVER_VERSION_UNSPECIFIED" : Default value is to not install any |
| /// GPU driver. |
| /// - "INSTALLATION_DISABLED" : Disable GPU driver auto installation and needs |
| /// manual installation |
| /// - "DEFAULT" : "Default" GPU driver in COS and Ubuntu. |
| /// - "LATEST" : "Latest" GPU driver in COS. |
| core.String? gpuDriverVersion; |
| |
| GPUDriverInstallationConfig({this.gpuDriverVersion}); |
| |
| GPUDriverInstallationConfig.fromJson(core.Map json_) |
| : this(gpuDriverVersion: json_['gpuDriverVersion'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final gpuDriverVersion = this.gpuDriverVersion; |
| return {'gpuDriverVersion': ?gpuDriverVersion}; |
| } |
| } |
| |
| /// GPUSharingConfig represents the GPU sharing configuration for Hardware |
| /// Accelerators. |
| class GPUSharingConfig { |
| /// The type of GPU sharing strategy to enable on the GPU node. |
| /// Possible string values are: |
| /// - "GPU_SHARING_STRATEGY_UNSPECIFIED" : Default value. |
| /// - "TIME_SHARING" : GPUs are time-shared between containers. |
| /// - "MPS" : GPUs are shared between containers with NVIDIA MPS. |
| core.String? gpuSharingStrategy; |
| |
| /// The max number of containers that can share a physical GPU. |
| core.String? maxSharedClientsPerGpu; |
| |
| GPUSharingConfig({this.gpuSharingStrategy, this.maxSharedClientsPerGpu}); |
| |
| GPUSharingConfig.fromJson(core.Map json_) |
| : this( |
| gpuSharingStrategy: json_['gpuSharingStrategy'] as core.String?, |
| maxSharedClientsPerGpu: json_['maxSharedClientsPerGpu'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final gpuSharingStrategy = this.gpuSharingStrategy; |
| final maxSharedClientsPerGpu = this.maxSharedClientsPerGpu; |
| return { |
| 'gpuSharingStrategy': ?gpuSharingStrategy, |
| 'maxSharedClientsPerGpu': ?maxSharedClientsPerGpu, |
| }; |
| } |
| } |
| |
| /// GatewayAPIConfig contains the desired config of Gateway API on this cluster. |
| class GatewayAPIConfig { |
| /// The Gateway API release channel to use for Gateway API. |
| /// Possible string values are: |
| /// - "CHANNEL_UNSPECIFIED" : Default value. |
| /// - "CHANNEL_DISABLED" : Gateway API support is disabled |
| /// - "CHANNEL_EXPERIMENTAL" : Deprecated: use CHANNEL_STANDARD instead. |
| /// Gateway API support is enabled, experimental CRDs are installed |
| /// - "CHANNEL_STANDARD" : Gateway API support is enabled, standard CRDs are |
| /// installed |
| core.String? channel; |
| |
| GatewayAPIConfig({this.channel}); |
| |
| GatewayAPIConfig.fromJson(core.Map json_) |
| : this(channel: json_['channel'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final channel = this.channel; |
| return {'channel': ?channel}; |
| } |
| } |
| |
| /// Configuration for the Compute Engine PD CSI driver. |
| class GcePersistentDiskCsiDriverConfig { |
| /// Whether the Compute Engine PD CSI driver is enabled for this cluster. |
| core.bool? enabled; |
| |
| GcePersistentDiskCsiDriverConfig({this.enabled}); |
| |
| GcePersistentDiskCsiDriverConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// GcfsConfig contains configurations of Google Container File System (image |
| /// streaming). |
| class GcfsConfig { |
| /// Whether to use GCFS. |
| core.bool? enabled; |
| |
| GcfsConfig({this.enabled}); |
| |
| GcfsConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration for the Filestore CSI driver. |
| class GcpFilestoreCsiDriverConfig { |
| /// Whether the Filestore CSI driver is enabled for this cluster. |
| core.bool? enabled; |
| |
| GcpFilestoreCsiDriverConfig({this.enabled}); |
| |
| GcpFilestoreCsiDriverConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration for the Cloud Storage Fuse CSI driver. |
| class GcsFuseCsiDriverConfig { |
| /// Whether the Cloud Storage Fuse CSI driver is enabled for this cluster. |
| core.bool? enabled; |
| |
| GcsFuseCsiDriverConfig({this.enabled}); |
| |
| GcsFuseCsiDriverConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// GetJSONWebKeysResponse is a valid JSON Web Key Set as specified in rfc 7517 |
| class GetJSONWebKeysResponse { |
| /// For HTTP requests, this field is automatically extracted into the |
| /// Cache-Control HTTP header. |
| HttpCacheControlResponseHeader? cacheHeader; |
| |
| /// The public component of the keys used by the cluster to sign token |
| /// requests. |
| core.List<Jwk>? keys; |
| |
| GetJSONWebKeysResponse({this.cacheHeader, this.keys}); |
| |
| GetJSONWebKeysResponse.fromJson(core.Map json_) |
| : this( |
| cacheHeader: json_.containsKey('cacheHeader') |
| ? HttpCacheControlResponseHeader.fromJson( |
| json_['cacheHeader'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| keys: (json_['keys'] as core.List?) |
| ?.map( |
| (value) => |
| Jwk.fromJson(value as core.Map<core.String, core.dynamic>), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final cacheHeader = this.cacheHeader; |
| final keys = this.keys; |
| return {'cacheHeader': ?cacheHeader, 'keys': ?keys}; |
| } |
| } |
| |
| /// GetOpenIDConfigResponse is an OIDC discovery document for the cluster. |
| /// |
| /// See the OpenID Connect Discovery 1.0 specification for details. |
| class GetOpenIDConfigResponse { |
| /// For HTTP requests, this field is automatically extracted into the |
| /// Cache-Control HTTP header. |
| HttpCacheControlResponseHeader? cacheHeader; |
| |
| /// Supported claims. |
| core.List<core.String>? claimsSupported; |
| |
| /// Supported grant types. |
| core.List<core.String>? grantTypes; |
| |
| /// supported ID Token signing Algorithms. |
| core.List<core.String>? idTokenSigningAlgValuesSupported; |
| |
| /// OIDC Issuer. |
| core.String? issuer; |
| |
| /// JSON Web Key uri. |
| core.String? jwksUri; |
| |
| /// Supported response types. |
| core.List<core.String>? responseTypesSupported; |
| |
| /// Supported subject types. |
| core.List<core.String>? subjectTypesSupported; |
| |
| GetOpenIDConfigResponse({ |
| this.cacheHeader, |
| this.claimsSupported, |
| this.grantTypes, |
| this.idTokenSigningAlgValuesSupported, |
| this.issuer, |
| this.jwksUri, |
| this.responseTypesSupported, |
| this.subjectTypesSupported, |
| }); |
| |
| GetOpenIDConfigResponse.fromJson(core.Map json_) |
| : this( |
| cacheHeader: json_.containsKey('cacheHeader') |
| ? HttpCacheControlResponseHeader.fromJson( |
| json_['cacheHeader'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| claimsSupported: (json_['claims_supported'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| grantTypes: (json_['grant_types'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| idTokenSigningAlgValuesSupported: |
| (json_['id_token_signing_alg_values_supported'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| issuer: json_['issuer'] as core.String?, |
| jwksUri: json_['jwks_uri'] as core.String?, |
| responseTypesSupported: |
| (json_['response_types_supported'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| subjectTypesSupported: (json_['subject_types_supported'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final cacheHeader = this.cacheHeader; |
| final claimsSupported = this.claimsSupported; |
| final grantTypes = this.grantTypes; |
| final idTokenSigningAlgValuesSupported = |
| this.idTokenSigningAlgValuesSupported; |
| final issuer = this.issuer; |
| final jwksUri = this.jwksUri; |
| final responseTypesSupported = this.responseTypesSupported; |
| final subjectTypesSupported = this.subjectTypesSupported; |
| return { |
| 'cacheHeader': ?cacheHeader, |
| 'claims_supported': ?claimsSupported, |
| 'grant_types': ?grantTypes, |
| 'id_token_signing_alg_values_supported': |
| ?idTokenSigningAlgValuesSupported, |
| 'issuer': ?issuer, |
| 'jwks_uri': ?jwksUri, |
| 'response_types_supported': ?responseTypesSupported, |
| 'subject_types_supported': ?subjectTypesSupported, |
| }; |
| } |
| } |
| |
| /// GkeAutoUpgradeConfig is the configuration for GKE auto upgrades. |
| class GkeAutoUpgradeConfig { |
| /// PatchMode specifies how auto upgrade patch builds should be selected. |
| /// Possible string values are: |
| /// - "PATCH_MODE_UNSPECIFIED" : PATCH_MODE_UNSPECIFIED defaults to using the |
| /// upgrade target from the channel's patch upgrade targets as the upgrade |
| /// target for the version. |
| /// - "ACCELERATED" : ACCELERATED denotes that the latest patch build in the |
| /// channel should be used as the upgrade target for the version. |
| core.String? patchMode; |
| |
| GkeAutoUpgradeConfig({this.patchMode}); |
| |
| GkeAutoUpgradeConfig.fromJson(core.Map json_) |
| : this(patchMode: json_['patchMode'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final patchMode = this.patchMode; |
| return {'patchMode': ?patchMode}; |
| } |
| } |
| |
| /// Configuration for the Backup for GKE Agent. |
| class GkeBackupAgentConfig { |
| /// Whether the Backup for GKE agent is enabled for this cluster. |
| core.bool? enabled; |
| |
| GkeBackupAgentConfig({this.enabled}); |
| |
| GkeBackupAgentConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration for the High Scale Checkpointing. |
| class HighScaleCheckpointingConfig { |
| /// Whether the High Scale Checkpointing is enabled for this cluster. |
| core.bool? enabled; |
| |
| HighScaleCheckpointingConfig({this.enabled}); |
| |
| HighScaleCheckpointingConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration options for the horizontal pod autoscaling feature, which |
| /// increases or decreases the number of replica pods a replication controller |
| /// has based on the resource usage of the existing pods. |
| class HorizontalPodAutoscaling { |
| /// Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. |
| /// |
| /// When enabled, it ensures that metrics are collected into Stackdriver |
| /// Monitoring. |
| core.bool? disabled; |
| |
| HorizontalPodAutoscaling({this.disabled}); |
| |
| HorizontalPodAutoscaling.fromJson(core.Map json_) |
| : this(disabled: json_['disabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disabled = this.disabled; |
| return {'disabled': ?disabled}; |
| } |
| } |
| |
| /// HostConfig configures the registry host under a given Server. |
| class HostConfig { |
| /// CA configures the registry host certificate. |
| core.List<CertificateConfig>? ca; |
| |
| /// Capabilities represent the capabilities of the registry host, specifying |
| /// what operations a host is capable of performing. |
| /// |
| /// If not set, containerd enables all capabilities by default. |
| core.List<core.String>? capabilities; |
| |
| /// Client configures the registry host client certificate and key. |
| core.List<CertificateConfigPair>? client; |
| |
| /// Specifies the maximum duration allowed for a connection attempt to |
| /// complete. |
| /// |
| /// A shorter timeout helps reduce delays when falling back to the original |
| /// registry if the mirror is unreachable. Maximum allowed value is 180s. If |
| /// not set, containerd sets default 30s. The value should be a decimal number |
| /// of seconds with an `s` suffix. |
| core.String? dialTimeout; |
| |
| /// Header configures the registry host headers. |
| core.List<RegistryHeader>? header; |
| |
| /// Host configures the registry host/mirror. |
| /// |
| /// It supports fully qualified domain names (FQDNs) and IP addresses. |
| /// Specifying scheme, port or path is supported. Scheme can only be http or |
| /// https. Wildcards are NOT supported. Examples: - `my.customdomain.com` - |
| /// `https://my.customdomain.com/path` - `10.0.1.2:5000` |
| core.String? host; |
| |
| /// OverridePath is used to indicate the host's API root endpoint is defined |
| /// in the URL path rather than by the API specification. |
| /// |
| /// This may be used with non-compliant OCI registries which are missing the |
| /// /v2 prefix. If not set, containerd sets default false. |
| core.bool? overridePath; |
| |
| HostConfig({ |
| this.ca, |
| this.capabilities, |
| this.client, |
| this.dialTimeout, |
| this.header, |
| this.host, |
| this.overridePath, |
| }); |
| |
| HostConfig.fromJson(core.Map json_) |
| : this( |
| ca: (json_['ca'] as core.List?) |
| ?.map( |
| (value) => CertificateConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| capabilities: (json_['capabilities'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| client: (json_['client'] as core.List?) |
| ?.map( |
| (value) => CertificateConfigPair.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| dialTimeout: json_['dialTimeout'] as core.String?, |
| header: (json_['header'] as core.List?) |
| ?.map( |
| (value) => RegistryHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| host: json_['host'] as core.String?, |
| overridePath: json_['overridePath'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final ca = this.ca; |
| final capabilities = this.capabilities; |
| final client = this.client; |
| final dialTimeout = this.dialTimeout; |
| final header = this.header; |
| final host = this.host; |
| final overridePath = this.overridePath; |
| return { |
| 'ca': ?ca, |
| 'capabilities': ?capabilities, |
| 'client': ?client, |
| 'dialTimeout': ?dialTimeout, |
| 'header': ?header, |
| 'host': ?host, |
| 'overridePath': ?overridePath, |
| }; |
| } |
| } |
| |
| /// RFC-2616: cache control support |
| class HttpCacheControlResponseHeader { |
| /// 14.6 response cache age, in seconds since the response is generated |
| core.String? age; |
| |
| /// 14.9 request and response directives |
| core.String? directive; |
| |
| /// 14.21 response cache expires, in RFC 1123 date format |
| core.String? expires; |
| |
| HttpCacheControlResponseHeader({this.age, this.directive, this.expires}); |
| |
| HttpCacheControlResponseHeader.fromJson(core.Map json_) |
| : this( |
| age: json_['age'] as core.String?, |
| directive: json_['directive'] as core.String?, |
| expires: json_['expires'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final age = this.age; |
| final directive = this.directive; |
| final expires = this.expires; |
| return {'age': ?age, 'directive': ?directive, 'expires': ?expires}; |
| } |
| } |
| |
| /// Configuration options for the HTTP (L7) load balancing controller addon, |
| /// which makes it easy to set up HTTP load balancers for services in a cluster. |
| class HttpLoadBalancing { |
| /// Whether the HTTP Load Balancing controller is enabled in the cluster. |
| /// |
| /// When enabled, it runs a small pod in the cluster that manages the load |
| /// balancers. |
| core.bool? disabled; |
| |
| HttpLoadBalancing({this.disabled}); |
| |
| HttpLoadBalancing.fromJson(core.Map json_) |
| : this(disabled: json_['disabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disabled = this.disabled; |
| return {'disabled': ?disabled}; |
| } |
| } |
| |
| /// Hugepages amount in both 2m and 1g size |
| class HugepagesConfig { |
| /// Amount of 1G hugepages |
| /// |
| /// Optional. |
| core.int? hugepageSize1g; |
| |
| /// Amount of 2M hugepages |
| /// |
| /// Optional. |
| core.int? hugepageSize2m; |
| |
| HugepagesConfig({this.hugepageSize1g, this.hugepageSize2m}); |
| |
| HugepagesConfig.fromJson(core.Map json_) |
| : this( |
| hugepageSize1g: json_['hugepageSize1g'] as core.int?, |
| hugepageSize2m: json_['hugepageSize2m'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final hugepageSize1g = this.hugepageSize1g; |
| final hugepageSize2m = this.hugepageSize2m; |
| return { |
| 'hugepageSize1g': ?hugepageSize1g, |
| 'hugepageSize2m': ?hugepageSize2m, |
| }; |
| } |
| } |
| |
| /// ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer |
| /// subsetting on this cluster. |
| class ILBSubsettingConfig { |
| /// Enables l4 ILB subsetting for this cluster. |
| core.bool? enabled; |
| |
| ILBSubsettingConfig({this.enabled}); |
| |
| ILBSubsettingConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration for controlling how IPs are allocated in the cluster. |
| class IPAllocationPolicy { |
| /// The additional IP ranges that are added to the cluster. |
| /// |
| /// These IP ranges can be used by new node pools to allocate node and pod IPs |
| /// automatically. Each AdditionalIPRangesConfig corresponds to a single |
| /// subnetwork. Once a range is removed it will not show up in |
| /// IPAllocationPolicy. |
| /// |
| /// Output only. |
| core.List<AdditionalIPRangesConfig>? additionalIpRangesConfigs; |
| |
| /// The additional pod ranges that are added to the cluster. |
| /// |
| /// These pod ranges can be used by new node pools to allocate pod IPs |
| /// automatically. Once the range is removed it will not show up in |
| /// IPAllocationPolicy. |
| /// |
| /// Output only. |
| AdditionalPodRangesConfig? additionalPodRangesConfig; |
| |
| /// AutoIpamConfig contains all information related to Auto IPAM |
| /// |
| /// Optional. |
| AutoIpamConfig? autoIpamConfig; |
| |
| /// This field is deprecated, use cluster_ipv4_cidr_block. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterIpv4Cidr; |
| |
| /// The IP address range for the cluster pod IPs. |
| /// |
| /// If this field is set, then `cluster.cluster_ipv4_cidr` must be left blank. |
| /// This field is only applicable when `use_ip_aliases` is true. Set to blank |
| /// to have a range chosen with the default size. Set to /netmask (e.g. `/14`) |
| /// to have a range chosen with a specific netmask. Set to a |
| /// [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) |
| /// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. |
| /// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range |
| /// to use. |
| core.String? clusterIpv4CidrBlock; |
| |
| /// The name of the secondary range to be used for the cluster CIDR block. |
| /// |
| /// The secondary range will be used for pod IP addresses. This must be an |
| /// existing secondary range associated with the cluster subnetwork. This |
| /// field is only applicable with use_ip_aliases is true and create_subnetwork |
| /// is false. |
| core.String? clusterSecondaryRangeName; |
| |
| /// Whether a new subnetwork will be created automatically for the cluster. |
| /// |
| /// This field is only applicable when `use_ip_aliases` is true. |
| core.bool? createSubnetwork; |
| |
| /// The utilization of the cluster default IPv4 range for the pod. |
| /// |
| /// The ratio is Usage/\[Total number of IPs in the secondary range\], |
| /// Usage=numNodes*numZones*podIPsPerNode. |
| /// |
| /// Output only. |
| core.double? defaultPodIpv4RangeUtilization; |
| |
| /// The ipv6 access type (internal or external) when create_subnetwork is true |
| /// Possible string values are: |
| /// - "IPV6_ACCESS_TYPE_UNSPECIFIED" : Default value, will be defaulted as |
| /// type external. |
| /// - "INTERNAL" : Access type internal (all v6 addresses are internal IPs) |
| /// - "EXTERNAL" : Access type external (all v6 addresses are external IPs) |
| core.String? ipv6AccessType; |
| |
| /// Cluster-level network tier configuration is used to determine the default |
| /// network tier for external IP addresses on cluster resources, such as node |
| /// pools and load balancers. |
| NetworkTierConfig? networkTierConfig; |
| |
| /// This field is deprecated, use node_ipv4_cidr_block. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? nodeIpv4Cidr; |
| |
| /// The IP address range of the instance IPs in this cluster. |
| /// |
| /// This is applicable only if `create_subnetwork` is true. Set to blank to |
| /// have a range chosen with the default size. Set to /netmask (e.g. `/14`) to |
| /// have a range chosen with a specific netmask. Set to a |
| /// [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) |
| /// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. |
| /// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range |
| /// to use. |
| core.String? nodeIpv4CidrBlock; |
| |
| /// \[PRIVATE FIELD\] Pod CIDR size overprovisioning config for the cluster. |
| /// |
| /// Pod CIDR size per node depends on max_pods_per_node. By default, the value |
| /// of max_pods_per_node is doubled and then rounded off to next power of 2 to |
| /// get the size of pod CIDR block per node. Example: max_pods_per_node of 30 |
| /// would result in 64 IPs (/26). This config can disable the doubling of IPs |
| /// (we still round off to next power of 2) Example: max_pods_per_node of 30 |
| /// will result in 32 IPs (/27) when overprovisioning is disabled. |
| PodCIDROverprovisionConfig? podCidrOverprovisionConfig; |
| |
| /// This field is deprecated, use services_ipv4_cidr_block. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? servicesIpv4Cidr; |
| |
| /// The IP address range of the services IPs in this cluster. |
| /// |
| /// If blank, a range will be automatically chosen with the default size. This |
| /// field is only applicable when `use_ip_aliases` is true. Set to blank to |
| /// have a range chosen with the default size. Set to /netmask (e.g. `/14`) to |
| /// have a range chosen with a specific netmask. Set to a |
| /// [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) |
| /// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. |
| /// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range |
| /// to use. |
| core.String? servicesIpv4CidrBlock; |
| |
| /// The services IPv6 CIDR block for the cluster. |
| /// |
| /// Output only. |
| core.String? servicesIpv6CidrBlock; |
| |
| /// The name of the secondary range to be used as for the services CIDR block. |
| /// |
| /// The secondary range will be used for service ClusterIPs. This must be an |
| /// existing secondary range associated with the cluster subnetwork. This |
| /// field is only applicable with use_ip_aliases is true and create_subnetwork |
| /// is false. |
| core.String? servicesSecondaryRangeName; |
| |
| /// The IP stack type of the cluster |
| /// Possible string values are: |
| /// - "STACK_TYPE_UNSPECIFIED" : Default value, will be defaulted as IPV4 only |
| /// - "IPV4" : Cluster is IPV4 only |
| /// - "IPV4_IPV6" : Cluster can use both IPv4 and IPv6 |
| core.String? stackType; |
| |
| /// The subnet's IPv6 CIDR block used by nodes and pods. |
| /// |
| /// Output only. |
| core.String? subnetIpv6CidrBlock; |
| |
| /// A custom subnetwork name to be used if `create_subnetwork` is true. |
| /// |
| /// If this field is empty, then an automatic name will be chosen for the new |
| /// subnetwork. |
| core.String? subnetworkName; |
| |
| /// The IP address range of the Cloud TPUs in this cluster. |
| /// |
| /// If unspecified, a range will be automatically chosen with the default |
| /// size. This field is only applicable when `use_ip_aliases` is true. If |
| /// unspecified, the range will use the default size. Set to /netmask (e.g. |
| /// `/14`) to have a range chosen with a specific netmask. Set to a |
| /// [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) |
| /// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. |
| /// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range |
| /// to use. This field is deprecated due to the deprecation of 2VM TPU. The |
| /// end of life date for 2VM TPU is 2025-04-25. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? tpuIpv4CidrBlock; |
| |
| /// Whether alias IPs will be used for pod IPs in the cluster. |
| /// |
| /// This is used in conjunction with use_routes. It cannot be true if |
| /// use_routes is true. If both use_ip_aliases and use_routes are false, then |
| /// the server picks the default IP allocation mode |
| core.bool? useIpAliases; |
| |
| /// Whether routes will be used for pod IPs in the cluster. |
| /// |
| /// This is used in conjunction with use_ip_aliases. It cannot be true if |
| /// use_ip_aliases is true. If both use_ip_aliases and use_routes are false, |
| /// then the server picks the default IP allocation mode |
| core.bool? useRoutes; |
| |
| IPAllocationPolicy({ |
| this.additionalIpRangesConfigs, |
| this.additionalPodRangesConfig, |
| this.autoIpamConfig, |
| this.clusterIpv4Cidr, |
| this.clusterIpv4CidrBlock, |
| this.clusterSecondaryRangeName, |
| this.createSubnetwork, |
| this.defaultPodIpv4RangeUtilization, |
| this.ipv6AccessType, |
| this.networkTierConfig, |
| this.nodeIpv4Cidr, |
| this.nodeIpv4CidrBlock, |
| this.podCidrOverprovisionConfig, |
| this.servicesIpv4Cidr, |
| this.servicesIpv4CidrBlock, |
| this.servicesIpv6CidrBlock, |
| this.servicesSecondaryRangeName, |
| this.stackType, |
| this.subnetIpv6CidrBlock, |
| this.subnetworkName, |
| this.tpuIpv4CidrBlock, |
| this.useIpAliases, |
| this.useRoutes, |
| }); |
| |
| IPAllocationPolicy.fromJson(core.Map json_) |
| : this( |
| additionalIpRangesConfigs: |
| (json_['additionalIpRangesConfigs'] as core.List?) |
| ?.map( |
| (value) => AdditionalIPRangesConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| additionalPodRangesConfig: |
| json_.containsKey('additionalPodRangesConfig') |
| ? AdditionalPodRangesConfig.fromJson( |
| json_['additionalPodRangesConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| autoIpamConfig: json_.containsKey('autoIpamConfig') |
| ? AutoIpamConfig.fromJson( |
| json_['autoIpamConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| clusterIpv4Cidr: json_['clusterIpv4Cidr'] as core.String?, |
| clusterIpv4CidrBlock: json_['clusterIpv4CidrBlock'] as core.String?, |
| clusterSecondaryRangeName: |
| json_['clusterSecondaryRangeName'] as core.String?, |
| createSubnetwork: json_['createSubnetwork'] as core.bool?, |
| defaultPodIpv4RangeUtilization: |
| (json_['defaultPodIpv4RangeUtilization'] as core.num?)?.toDouble(), |
| ipv6AccessType: json_['ipv6AccessType'] as core.String?, |
| networkTierConfig: json_.containsKey('networkTierConfig') |
| ? NetworkTierConfig.fromJson( |
| json_['networkTierConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodeIpv4Cidr: json_['nodeIpv4Cidr'] as core.String?, |
| nodeIpv4CidrBlock: json_['nodeIpv4CidrBlock'] as core.String?, |
| podCidrOverprovisionConfig: |
| json_.containsKey('podCidrOverprovisionConfig') |
| ? PodCIDROverprovisionConfig.fromJson( |
| json_['podCidrOverprovisionConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| servicesIpv4Cidr: json_['servicesIpv4Cidr'] as core.String?, |
| servicesIpv4CidrBlock: json_['servicesIpv4CidrBlock'] as core.String?, |
| servicesIpv6CidrBlock: json_['servicesIpv6CidrBlock'] as core.String?, |
| servicesSecondaryRangeName: |
| json_['servicesSecondaryRangeName'] as core.String?, |
| stackType: json_['stackType'] as core.String?, |
| subnetIpv6CidrBlock: json_['subnetIpv6CidrBlock'] as core.String?, |
| subnetworkName: json_['subnetworkName'] as core.String?, |
| tpuIpv4CidrBlock: json_['tpuIpv4CidrBlock'] as core.String?, |
| useIpAliases: json_['useIpAliases'] as core.bool?, |
| useRoutes: json_['useRoutes'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final additionalIpRangesConfigs = this.additionalIpRangesConfigs; |
| final additionalPodRangesConfig = this.additionalPodRangesConfig; |
| final autoIpamConfig = this.autoIpamConfig; |
| final clusterIpv4Cidr = this.clusterIpv4Cidr; |
| final clusterIpv4CidrBlock = this.clusterIpv4CidrBlock; |
| final clusterSecondaryRangeName = this.clusterSecondaryRangeName; |
| final createSubnetwork = this.createSubnetwork; |
| final defaultPodIpv4RangeUtilization = this.defaultPodIpv4RangeUtilization; |
| final ipv6AccessType = this.ipv6AccessType; |
| final networkTierConfig = this.networkTierConfig; |
| final nodeIpv4Cidr = this.nodeIpv4Cidr; |
| final nodeIpv4CidrBlock = this.nodeIpv4CidrBlock; |
| final podCidrOverprovisionConfig = this.podCidrOverprovisionConfig; |
| final servicesIpv4Cidr = this.servicesIpv4Cidr; |
| final servicesIpv4CidrBlock = this.servicesIpv4CidrBlock; |
| final servicesIpv6CidrBlock = this.servicesIpv6CidrBlock; |
| final servicesSecondaryRangeName = this.servicesSecondaryRangeName; |
| final stackType = this.stackType; |
| final subnetIpv6CidrBlock = this.subnetIpv6CidrBlock; |
| final subnetworkName = this.subnetworkName; |
| final tpuIpv4CidrBlock = this.tpuIpv4CidrBlock; |
| final useIpAliases = this.useIpAliases; |
| final useRoutes = this.useRoutes; |
| return { |
| 'additionalIpRangesConfigs': ?additionalIpRangesConfigs, |
| 'additionalPodRangesConfig': ?additionalPodRangesConfig, |
| 'autoIpamConfig': ?autoIpamConfig, |
| 'clusterIpv4Cidr': ?clusterIpv4Cidr, |
| 'clusterIpv4CidrBlock': ?clusterIpv4CidrBlock, |
| 'clusterSecondaryRangeName': ?clusterSecondaryRangeName, |
| 'createSubnetwork': ?createSubnetwork, |
| 'defaultPodIpv4RangeUtilization': ?defaultPodIpv4RangeUtilization, |
| 'ipv6AccessType': ?ipv6AccessType, |
| 'networkTierConfig': ?networkTierConfig, |
| 'nodeIpv4Cidr': ?nodeIpv4Cidr, |
| 'nodeIpv4CidrBlock': ?nodeIpv4CidrBlock, |
| 'podCidrOverprovisionConfig': ?podCidrOverprovisionConfig, |
| 'servicesIpv4Cidr': ?servicesIpv4Cidr, |
| 'servicesIpv4CidrBlock': ?servicesIpv4CidrBlock, |
| 'servicesIpv6CidrBlock': ?servicesIpv6CidrBlock, |
| 'servicesSecondaryRangeName': ?servicesSecondaryRangeName, |
| 'stackType': ?stackType, |
| 'subnetIpv6CidrBlock': ?subnetIpv6CidrBlock, |
| 'subnetworkName': ?subnetworkName, |
| 'tpuIpv4CidrBlock': ?tpuIpv4CidrBlock, |
| 'useIpAliases': ?useIpAliases, |
| 'useRoutes': ?useRoutes, |
| }; |
| } |
| } |
| |
| /// IP endpoints configuration. |
| class IPEndpointsConfig { |
| /// Configuration of authorized networks. |
| /// |
| /// If enabled, restricts access to the control plane based on source IP. It |
| /// is invalid to specify both Cluster.masterAuthorizedNetworksConfig and this |
| /// field at the same time. |
| MasterAuthorizedNetworksConfig? authorizedNetworksConfig; |
| |
| /// Controls whether the control plane allows access through a public IP. |
| /// |
| /// It is invalid to specify both PrivateClusterConfig.enablePrivateEndpoint |
| /// and this field at the same time. |
| core.bool? enablePublicEndpoint; |
| |
| /// Controls whether to allow direct IP access. |
| core.bool? enabled; |
| |
| /// Controls whether the control plane's private endpoint is accessible from |
| /// sources in other regions. |
| /// |
| /// It is invalid to specify both |
| /// PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same |
| /// time. |
| core.bool? globalAccess; |
| |
| /// The internal IP address of this cluster's control plane. |
| /// |
| /// Only populated if enabled. |
| /// |
| /// Output only. |
| core.String? privateEndpoint; |
| |
| /// Subnet to provision the master's private endpoint during cluster creation. |
| /// |
| /// Specified in projects / * /regions / * /subnetworks / * format. It is |
| /// invalid to specify both PrivateClusterConfig.privateEndpointSubnetwork and |
| /// this field at the same time. |
| core.String? privateEndpointSubnetwork; |
| |
| /// The external IP address of this cluster's control plane. |
| /// |
| /// Only populated if enabled. |
| /// |
| /// Output only. |
| core.String? publicEndpoint; |
| |
| IPEndpointsConfig({ |
| this.authorizedNetworksConfig, |
| this.enablePublicEndpoint, |
| this.enabled, |
| this.globalAccess, |
| this.privateEndpoint, |
| this.privateEndpointSubnetwork, |
| this.publicEndpoint, |
| }); |
| |
| IPEndpointsConfig.fromJson(core.Map json_) |
| : this( |
| authorizedNetworksConfig: json_.containsKey('authorizedNetworksConfig') |
| ? MasterAuthorizedNetworksConfig.fromJson( |
| json_['authorizedNetworksConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enablePublicEndpoint: json_['enablePublicEndpoint'] as core.bool?, |
| enabled: json_['enabled'] as core.bool?, |
| globalAccess: json_['globalAccess'] as core.bool?, |
| privateEndpoint: json_['privateEndpoint'] as core.String?, |
| privateEndpointSubnetwork: |
| json_['privateEndpointSubnetwork'] as core.String?, |
| publicEndpoint: json_['publicEndpoint'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final authorizedNetworksConfig = this.authorizedNetworksConfig; |
| final enablePublicEndpoint = this.enablePublicEndpoint; |
| final enabled = this.enabled; |
| final globalAccess = this.globalAccess; |
| final privateEndpoint = this.privateEndpoint; |
| final privateEndpointSubnetwork = this.privateEndpointSubnetwork; |
| final publicEndpoint = this.publicEndpoint; |
| return { |
| 'authorizedNetworksConfig': ?authorizedNetworksConfig, |
| 'enablePublicEndpoint': ?enablePublicEndpoint, |
| 'enabled': ?enabled, |
| 'globalAccess': ?globalAccess, |
| 'privateEndpoint': ?privateEndpoint, |
| 'privateEndpointSubnetwork': ?privateEndpointSubnetwork, |
| 'publicEndpoint': ?publicEndpoint, |
| }; |
| } |
| } |
| |
| /// IdentityServiceConfig is configuration for Identity Service which allows |
| /// customers to use external identity providers with the K8S API |
| class IdentityServiceConfig { |
| /// Whether to enable the Identity Service component |
| core.bool? enabled; |
| |
| IdentityServiceConfig({this.enabled}); |
| |
| IdentityServiceConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// IntraNodeVisibilityConfig contains the desired config of the intra-node |
| /// visibility on this cluster. |
| class IntraNodeVisibilityConfig { |
| /// Enables intra node visibility for this cluster. |
| core.bool? enabled; |
| |
| IntraNodeVisibilityConfig({this.enabled}); |
| |
| IntraNodeVisibilityConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Jwk is a JSON Web Key as specified in RFC 7517 |
| class Jwk { |
| /// Algorithm. |
| core.String? alg; |
| |
| /// Used for ECDSA keys. |
| core.String? crv; |
| |
| /// Used for RSA keys. |
| core.String? e; |
| |
| /// Key ID. |
| core.String? kid; |
| |
| /// Key Type. |
| core.String? kty; |
| |
| /// Used for RSA keys. |
| core.String? n; |
| |
| /// Permitted uses for the public keys. |
| core.String? use; |
| |
| /// Used for ECDSA keys. |
| core.String? x; |
| |
| /// Used for ECDSA keys. |
| core.String? y; |
| |
| Jwk({ |
| this.alg, |
| this.crv, |
| this.e, |
| this.kid, |
| this.kty, |
| this.n, |
| this.use, |
| this.x, |
| this.y, |
| }); |
| |
| Jwk.fromJson(core.Map json_) |
| : this( |
| alg: json_['alg'] as core.String?, |
| crv: json_['crv'] as core.String?, |
| e: json_['e'] as core.String?, |
| kid: json_['kid'] as core.String?, |
| kty: json_['kty'] as core.String?, |
| n: json_['n'] as core.String?, |
| use: json_['use'] as core.String?, |
| x: json_['x'] as core.String?, |
| y: json_['y'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final alg = this.alg; |
| final crv = this.crv; |
| final e = this.e; |
| final kid = this.kid; |
| final kty = this.kty; |
| final n = this.n; |
| final use = this.use; |
| final x = this.x; |
| final y = this.y; |
| return { |
| 'alg': ?alg, |
| 'crv': ?crv, |
| 'e': ?e, |
| 'kid': ?kid, |
| 'kty': ?kty, |
| 'n': ?n, |
| 'use': ?use, |
| 'x': ?x, |
| 'y': ?y, |
| }; |
| } |
| } |
| |
| /// K8sBetaAPIConfig , configuration for beta APIs |
| class K8sBetaAPIConfig { |
| /// Enabled k8s beta APIs. |
| core.List<core.String>? enabledApis; |
| |
| K8sBetaAPIConfig({this.enabledApis}); |
| |
| K8sBetaAPIConfig.fromJson(core.Map json_) |
| : this( |
| enabledApis: (json_['enabledApis'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabledApis = this.enabledApis; |
| return {'enabledApis': ?enabledApis}; |
| } |
| } |
| |
| /// Configuration for the Kubernetes Dashboard. |
| class KubernetesDashboard { |
| /// Whether the Kubernetes Dashboard is enabled for this cluster. |
| core.bool? disabled; |
| |
| KubernetesDashboard({this.disabled}); |
| |
| KubernetesDashboard.fromJson(core.Map json_) |
| : this(disabled: json_['disabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disabled = this.disabled; |
| return {'disabled': ?disabled}; |
| } |
| } |
| |
| /// Configuration for the legacy Attribute Based Access Control authorization |
| /// mode. |
| class LegacyAbac { |
| /// Whether the ABAC authorizer is enabled for this cluster. |
| /// |
| /// When enabled, identities in the system, including service accounts, nodes, |
| /// and controllers, will have statically granted permissions beyond those |
| /// provided by the RBAC configuration or IAM. |
| core.bool? enabled; |
| |
| LegacyAbac({this.enabled}); |
| |
| LegacyAbac.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Parameters that can be configured on Linux nodes. |
| class LinuxNodeConfig { |
| /// The accurate time configuration for the node pool. |
| /// |
| /// Optional. |
| AccurateTimeConfig? accurateTimeConfig; |
| |
| /// cgroup_mode specifies the cgroup mode to be used on the node. |
| /// Possible string values are: |
| /// - "CGROUP_MODE_UNSPECIFIED" : CGROUP_MODE_UNSPECIFIED is when unspecified |
| /// cgroup configuration is used. The default for the GKE node OS image will |
| /// be used. |
| /// - "CGROUP_MODE_V1" : CGROUP_MODE_V1 specifies to use cgroupv1 for the |
| /// cgroup configuration on the node image. |
| /// - "CGROUP_MODE_V2" : CGROUP_MODE_V2 specifies to use cgroupv2 for the |
| /// cgroup configuration on the node image. |
| core.String? cgroupMode; |
| |
| /// Amounts for 2M and 1G hugepages |
| /// |
| /// Optional. |
| HugepagesConfig? hugepages; |
| |
| /// Configuration for kernel module loading on nodes. |
| /// |
| /// When enabled, the node pool will be provisioned with a Container-Optimized |
| /// OS image that enforces kernel module signature verification. |
| /// |
| /// Optional. |
| NodeKernelModuleLoading? nodeKernelModuleLoading; |
| |
| /// Enables and configures swap space on nodes. |
| /// |
| /// If omitted, swap is disabled. |
| /// |
| /// Optional. |
| SwapConfig? swapConfig; |
| |
| /// The Linux kernel parameters to be applied to the nodes and all pods |
| /// running on the nodes. |
| /// |
| /// The following parameters are supported. net.core.busy_poll |
| /// net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max |
| /// net.core.rmem_default net.core.wmem_default net.core.wmem_max |
| /// net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem |
| /// net.ipv4.tcp_tw_reuse net.ipv4.tcp_mtu_probing net.ipv4.tcp_max_orphans |
| /// net.ipv4.tcp_max_tw_buckets net.ipv4.tcp_syn_retries net.ipv4.tcp_ecn |
| /// net.ipv4.tcp_congestion_control net.netfilter.nf_conntrack_max |
| /// net.netfilter.nf_conntrack_buckets |
| /// net.netfilter.nf_conntrack_tcp_timeout_close_wait |
| /// net.netfilter.nf_conntrack_tcp_timeout_time_wait |
| /// net.netfilter.nf_conntrack_tcp_timeout_established |
| /// net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall |
| /// kernel.perf_event_paranoid kernel.sched_rt_runtime_us |
| /// kernel.softlockup_panic kernel.yama.ptrace_scope kernel.kptr_restrict |
| /// kernel.dmesg_restrict kernel.sysrq fs.aio-max-nr fs.file-max |
| /// fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open |
| /// vm.dirty_background_ratio vm.dirty_background_bytes |
| /// vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_bytes |
| /// vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory |
| /// vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness |
| /// vm.watermark_scale_factor vm.min_free_kbytes |
| core.Map<core.String, core.String>? sysctls; |
| |
| /// Defines the transparent hugepage defrag configuration on the node. |
| /// |
| /// VM hugepage allocation can be managed by either limiting defragmentation |
| /// for delayed allocation or skipping it entirely for immediate allocation |
| /// only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more |
| /// details. |
| /// |
| /// Optional. |
| /// Possible string values are: |
| /// - "TRANSPARENT_HUGEPAGE_DEFRAG_UNSPECIFIED" : Default value. GKE will not |
| /// modify the kernel configuration. |
| /// - "TRANSPARENT_HUGEPAGE_DEFRAG_ALWAYS" : It means that an application |
| /// requesting THP will stall on allocation failure and directly reclaim pages |
| /// and compact memory in an effort to allocate a THP immediately. |
| /// - "TRANSPARENT_HUGEPAGE_DEFRAG_DEFER" : It means that an application will |
| /// wake kswapd in the background to reclaim pages and wake kcompactd to |
| /// compact memory so that THP is available in the near future. It's the |
| /// responsibility of khugepaged to then install the THP pages later. |
| /// - "TRANSPARENT_HUGEPAGE_DEFRAG_DEFER_WITH_MADVISE" : It means that an |
| /// application will enter direct reclaim and compaction like always, but only |
| /// for regions that have used madvise(MADV_HUGEPAGE); all other regions will |
| /// wake kswapd in the background to reclaim pages and wake kcompactd to |
| /// compact memory so that THP is available in the near future. |
| /// - "TRANSPARENT_HUGEPAGE_DEFRAG_MADVISE" : It means that an application |
| /// will enter direct reclaim like always but only for regions that are have |
| /// used madvise(MADV_HUGEPAGE). This is the default kernel configuration. |
| /// - "TRANSPARENT_HUGEPAGE_DEFRAG_NEVER" : It means that an application will |
| /// never enter direct reclaim or compaction. |
| core.String? transparentHugepageDefrag; |
| |
| /// Transparent hugepage support for anonymous memory can be entirely disabled |
| /// (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE |
| /// regions (to avoid the risk of consuming more memory resources) or enabled |
| /// system wide. |
| /// |
| /// See https://docs.kernel.org/admin-guide/mm/transhuge.html for more |
| /// details. |
| /// |
| /// Optional. |
| /// Possible string values are: |
| /// - "TRANSPARENT_HUGEPAGE_ENABLED_UNSPECIFIED" : Default value. GKE will not |
| /// modify the kernel configuration. |
| /// - "TRANSPARENT_HUGEPAGE_ENABLED_ALWAYS" : Transparent hugepage support for |
| /// anonymous memory is enabled system wide. |
| /// - "TRANSPARENT_HUGEPAGE_ENABLED_MADVISE" : Transparent hugepage support |
| /// for anonymous memory is enabled inside MADV_HUGEPAGE regions. This is the |
| /// default kernel configuration. |
| /// - "TRANSPARENT_HUGEPAGE_ENABLED_NEVER" : Transparent hugepage support for |
| /// anonymous memory is disabled. |
| core.String? transparentHugepageEnabled; |
| |
| LinuxNodeConfig({ |
| this.accurateTimeConfig, |
| this.cgroupMode, |
| this.hugepages, |
| this.nodeKernelModuleLoading, |
| this.swapConfig, |
| this.sysctls, |
| this.transparentHugepageDefrag, |
| this.transparentHugepageEnabled, |
| }); |
| |
| LinuxNodeConfig.fromJson(core.Map json_) |
| : this( |
| accurateTimeConfig: json_.containsKey('accurateTimeConfig') |
| ? AccurateTimeConfig.fromJson( |
| json_['accurateTimeConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| cgroupMode: json_['cgroupMode'] as core.String?, |
| hugepages: json_.containsKey('hugepages') |
| ? HugepagesConfig.fromJson( |
| json_['hugepages'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodeKernelModuleLoading: json_.containsKey('nodeKernelModuleLoading') |
| ? NodeKernelModuleLoading.fromJson( |
| json_['nodeKernelModuleLoading'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| swapConfig: json_.containsKey('swapConfig') |
| ? SwapConfig.fromJson( |
| json_['swapConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| sysctls: (json_['sysctls'] as core.Map<core.String, core.dynamic>?) |
| ?.map((key, value) => core.MapEntry(key, value as core.String)), |
| transparentHugepageDefrag: |
| json_['transparentHugepageDefrag'] as core.String?, |
| transparentHugepageEnabled: |
| json_['transparentHugepageEnabled'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final accurateTimeConfig = this.accurateTimeConfig; |
| final cgroupMode = this.cgroupMode; |
| final hugepages = this.hugepages; |
| final nodeKernelModuleLoading = this.nodeKernelModuleLoading; |
| final swapConfig = this.swapConfig; |
| final sysctls = this.sysctls; |
| final transparentHugepageDefrag = this.transparentHugepageDefrag; |
| final transparentHugepageEnabled = this.transparentHugepageEnabled; |
| return { |
| 'accurateTimeConfig': ?accurateTimeConfig, |
| 'cgroupMode': ?cgroupMode, |
| 'hugepages': ?hugepages, |
| 'nodeKernelModuleLoading': ?nodeKernelModuleLoading, |
| 'swapConfig': ?swapConfig, |
| 'sysctls': ?sysctls, |
| 'transparentHugepageDefrag': ?transparentHugepageDefrag, |
| 'transparentHugepageEnabled': ?transparentHugepageEnabled, |
| }; |
| } |
| } |
| |
| /// ListClustersResponse is the result of ListClustersRequest. |
| class ListClustersResponse { |
| /// A list of clusters in the project in the specified zone, or across all |
| /// ones. |
| core.List<Cluster>? clusters; |
| |
| /// If any zones are listed here, the list of clusters returned may be missing |
| /// those zones. |
| core.List<core.String>? missingZones; |
| |
| ListClustersResponse({this.clusters, this.missingZones}); |
| |
| ListClustersResponse.fromJson(core.Map json_) |
| : this( |
| clusters: (json_['clusters'] as core.List?) |
| ?.map( |
| (value) => Cluster.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| missingZones: (json_['missingZones'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusters = this.clusters; |
| final missingZones = this.missingZones; |
| return {'clusters': ?clusters, 'missingZones': ?missingZones}; |
| } |
| } |
| |
| /// ListNodePoolsResponse is the result of ListNodePoolsRequest. |
| class ListNodePoolsResponse { |
| /// A list of node pools for a cluster. |
| core.List<NodePool>? nodePools; |
| |
| ListNodePoolsResponse({this.nodePools}); |
| |
| ListNodePoolsResponse.fromJson(core.Map json_) |
| : this( |
| nodePools: (json_['nodePools'] as core.List?) |
| ?.map( |
| (value) => NodePool.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final nodePools = this.nodePools; |
| return {'nodePools': ?nodePools}; |
| } |
| } |
| |
| /// ListOperationsResponse is the result of ListOperationsRequest. |
| class ListOperationsResponse { |
| /// If any zones are listed here, the list of operations returned may be |
| /// missing the operations from those zones. |
| core.List<core.String>? missingZones; |
| |
| /// A list of operations in the project in the specified zone. |
| core.List<Operation>? operations; |
| |
| ListOperationsResponse({this.missingZones, this.operations}); |
| |
| ListOperationsResponse.fromJson(core.Map json_) |
| : this( |
| missingZones: (json_['missingZones'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| operations: (json_['operations'] as core.List?) |
| ?.map( |
| (value) => Operation.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final missingZones = this.missingZones; |
| final operations = this.operations; |
| return {'missingZones': ?missingZones, 'operations': ?operations}; |
| } |
| } |
| |
| /// ListUsableSubnetworksResponse is the response of |
| /// ListUsableSubnetworksRequest. |
| class ListUsableSubnetworksResponse { |
| /// This token allows you to get the next page of results for list requests. |
| /// |
| /// If the number of results is larger than `page_size`, use the |
| /// `next_page_token` as a value for the query parameter `page_token` in the |
| /// next request. The value will become empty when there are no more pages. |
| core.String? nextPageToken; |
| |
| /// A list of usable subnetworks in the specified network project. |
| core.List<UsableSubnetwork>? subnetworks; |
| |
| ListUsableSubnetworksResponse({this.nextPageToken, this.subnetworks}); |
| |
| ListUsableSubnetworksResponse.fromJson(core.Map json_) |
| : this( |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| subnetworks: (json_['subnetworks'] as core.List?) |
| ?.map( |
| (value) => UsableSubnetwork.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final nextPageToken = this.nextPageToken; |
| final subnetworks = this.subnetworks; |
| return {'nextPageToken': ?nextPageToken, 'subnetworks': ?subnetworks}; |
| } |
| } |
| |
| /// LocalNvmeSsdBlockConfig contains configuration for using raw-block local |
| /// NVMe SSDs |
| class LocalNvmeSsdBlockConfig { |
| /// Number of local NVMe SSDs to use. |
| /// |
| /// The limit for this value is dependent upon the maximum number of disk |
| /// available on a machine per zone. See: |
| /// https://cloud.google.com/compute/docs/disks/local-ssd for more |
| /// information. A zero (or unset) value has different meanings depending on |
| /// machine type being used: 1. For pre-Gen3 machines, which support flexible |
| /// numbers of local ssds, zero (or unset) means to disable using local SSDs |
| /// as ephemeral storage. 2. For Gen3 machines which dictate a specific number |
| /// of local ssds, zero (or unset) means to use the default number of local |
| /// ssds that goes with that machine type. For example, for a |
| /// c3-standard-8-lssd machine, 2 local ssds would be provisioned. For |
| /// c3-standard-8 (which doesn't support local ssds), 0 will be provisioned. |
| /// See |
| /// https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds |
| /// for more info. |
| core.int? localSsdCount; |
| |
| LocalNvmeSsdBlockConfig({this.localSsdCount}); |
| |
| LocalNvmeSsdBlockConfig.fromJson(core.Map json_) |
| : this(localSsdCount: json_['localSsdCount'] as core.int?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final localSsdCount = this.localSsdCount; |
| return {'localSsdCount': ?localSsdCount}; |
| } |
| } |
| |
| /// LoggingComponentConfig is cluster logging component configuration. |
| class LoggingComponentConfig { |
| /// Select components to collect logs. |
| /// |
| /// An empty set would disable all logging. |
| core.List<core.String>? enableComponents; |
| |
| LoggingComponentConfig({this.enableComponents}); |
| |
| LoggingComponentConfig.fromJson(core.Map json_) |
| : this( |
| enableComponents: (json_['enableComponents'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enableComponents = this.enableComponents; |
| return {'enableComponents': ?enableComponents}; |
| } |
| } |
| |
| /// LoggingConfig is cluster logging configuration. |
| class LoggingConfig { |
| /// Logging components configuration |
| LoggingComponentConfig? componentConfig; |
| |
| LoggingConfig({this.componentConfig}); |
| |
| LoggingConfig.fromJson(core.Map json_) |
| : this( |
| componentConfig: json_.containsKey('componentConfig') |
| ? LoggingComponentConfig.fromJson( |
| json_['componentConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final componentConfig = this.componentConfig; |
| return {'componentConfig': ?componentConfig}; |
| } |
| } |
| |
| /// LoggingVariantConfig specifies the behaviour of the logging component. |
| class LoggingVariantConfig { |
| /// Logging variant deployed on nodes. |
| /// Possible string values are: |
| /// - "VARIANT_UNSPECIFIED" : Default value. This shouldn't be used. |
| /// - "DEFAULT" : default logging variant. |
| /// - "MAX_THROUGHPUT" : maximum logging throughput variant. |
| core.String? variant; |
| |
| LoggingVariantConfig({this.variant}); |
| |
| LoggingVariantConfig.fromJson(core.Map json_) |
| : this(variant: json_['variant'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final variant = this.variant; |
| return {'variant': ?variant}; |
| } |
| } |
| |
| /// Configuration for the Lustre CSI driver. |
| class LustreCsiDriverConfig { |
| /// When set to true, this disables multi-NIC support for the Lustre CSI |
| /// driver. |
| /// |
| /// By default, GKE enables multi-NIC support, which allows the Lustre CSI |
| /// driver to automatically detect and configure all suitable network |
| /// interfaces on a node to maximize I/O performance for demanding workloads. |
| core.bool? disableMultiNic; |
| |
| /// If set to true, the Lustre CSI driver will install Lustre kernel modules |
| /// using port 6988. |
| /// |
| /// This serves as a workaround for a port conflict with the |
| /// gke-metadata-server. This field is required ONLY under the following |
| /// conditions: 1. The GKE node version is older than 1.33.2-gke.4655000. 2. |
| /// You're connecting to a Lustre instance that has the 'gke-support-enabled' |
| /// flag. Deprecated: This flag is no longer required as of GKE node version |
| /// 1.33.2-gke.4655000, unless you are connecting to a Lustre instance that |
| /// has the `gke-support-enabled` flag. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.bool? enableLegacyLustrePort; |
| |
| /// Whether the Lustre CSI driver is enabled for this cluster. |
| core.bool? enabled; |
| |
| LustreCsiDriverConfig({ |
| this.disableMultiNic, |
| this.enableLegacyLustrePort, |
| this.enabled, |
| }); |
| |
| LustreCsiDriverConfig.fromJson(core.Map json_) |
| : this( |
| disableMultiNic: json_['disableMultiNic'] as core.bool?, |
| enableLegacyLustrePort: json_['enableLegacyLustrePort'] as core.bool?, |
| enabled: json_['enabled'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disableMultiNic = this.disableMultiNic; |
| final enableLegacyLustrePort = this.enableLegacyLustrePort; |
| final enabled = this.enabled; |
| return { |
| 'disableMultiNic': ?disableMultiNic, |
| 'enableLegacyLustrePort': ?enableLegacyLustrePort, |
| 'enabled': ?enabled, |
| }; |
| } |
| } |
| |
| /// Represents the Maintenance exclusion option. |
| class MaintenanceExclusionOptions { |
| /// EndTimeBehavior specifies the behavior of the exclusion end time. |
| /// Possible string values are: |
| /// - "END_TIME_BEHAVIOR_UNSPECIFIED" : END_TIME_BEHAVIOR_UNSPECIFIED is the |
| /// default behavior, which is fixed end time. |
| /// - "UNTIL_END_OF_SUPPORT" : UNTIL_END_OF_SUPPORT means the exclusion will |
| /// be in effect until the end of the support of the cluster's current |
| /// version. |
| core.String? endTimeBehavior; |
| |
| /// Scope specifies the upgrade scope which upgrades are blocked by the |
| /// exclusion. |
| /// Possible string values are: |
| /// - "NO_UPGRADES" : NO_UPGRADES excludes all upgrades, including patch |
| /// upgrades and minor upgrades across control planes and nodes. This is the |
| /// default exclusion behavior. |
| /// - "NO_MINOR_UPGRADES" : NO_MINOR_UPGRADES excludes all minor upgrades for |
| /// the cluster, only patches are allowed. |
| /// - "NO_MINOR_OR_NODE_UPGRADES" : NO_MINOR_OR_NODE_UPGRADES excludes all |
| /// minor upgrades for the cluster, and also exclude all node pool upgrades. |
| /// Only control plane patches are allowed. |
| core.String? scope; |
| |
| MaintenanceExclusionOptions({this.endTimeBehavior, this.scope}); |
| |
| MaintenanceExclusionOptions.fromJson(core.Map json_) |
| : this( |
| endTimeBehavior: json_['endTimeBehavior'] as core.String?, |
| scope: json_['scope'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final endTimeBehavior = this.endTimeBehavior; |
| final scope = this.scope; |
| return {'endTimeBehavior': ?endTimeBehavior, 'scope': ?scope}; |
| } |
| } |
| |
| /// MaintenancePolicy defines the maintenance policy to be used for the cluster. |
| class MaintenancePolicy { |
| /// The upgrade disruption budget for the cluster control plane. |
| /// |
| /// Optional. |
| DisruptionBudget? disruptionBudget; |
| |
| /// A hash identifying the version of this policy, so that updates to fields |
| /// of the policy won't accidentally undo intermediate changes (and so that |
| /// users of the API unaware of some fields won't accidentally remove other |
| /// fields). |
| /// |
| /// Make a `get()` request to the cluster to get the current resource version |
| /// and include it with requests to set the policy. |
| core.String? resourceVersion; |
| |
| /// Specifies the maintenance window in which maintenance may be performed. |
| MaintenanceWindow? window; |
| |
| MaintenancePolicy({this.disruptionBudget, this.resourceVersion, this.window}); |
| |
| MaintenancePolicy.fromJson(core.Map json_) |
| : this( |
| disruptionBudget: json_.containsKey('disruptionBudget') |
| ? DisruptionBudget.fromJson( |
| json_['disruptionBudget'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| resourceVersion: json_['resourceVersion'] as core.String?, |
| window: json_.containsKey('window') |
| ? MaintenanceWindow.fromJson( |
| json_['window'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disruptionBudget = this.disruptionBudget; |
| final resourceVersion = this.resourceVersion; |
| final window = this.window; |
| return { |
| 'disruptionBudget': ?disruptionBudget, |
| 'resourceVersion': ?resourceVersion, |
| 'window': ?window, |
| }; |
| } |
| } |
| |
| /// MaintenanceWindow defines the maintenance window to be used for the cluster. |
| class MaintenanceWindow { |
| /// DailyMaintenanceWindow specifies a daily maintenance operation window. |
| DailyMaintenanceWindow? dailyMaintenanceWindow; |
| |
| /// Exceptions to maintenance window. |
| /// |
| /// Non-emergency maintenance should not occur in these windows. |
| core.Map<core.String, TimeWindow>? maintenanceExclusions; |
| |
| /// RecurringWindow specifies some number of recurring time periods for |
| /// maintenance to occur. |
| /// |
| /// The time windows may be overlapping. If no maintenance windows are set, |
| /// maintenance can occur at any time. |
| RecurringTimeWindow? recurringWindow; |
| |
| MaintenanceWindow({ |
| this.dailyMaintenanceWindow, |
| this.maintenanceExclusions, |
| this.recurringWindow, |
| }); |
| |
| MaintenanceWindow.fromJson(core.Map json_) |
| : this( |
| dailyMaintenanceWindow: json_.containsKey('dailyMaintenanceWindow') |
| ? DailyMaintenanceWindow.fromJson( |
| json_['dailyMaintenanceWindow'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| maintenanceExclusions: |
| (json_['maintenanceExclusions'] |
| as core.Map<core.String, core.dynamic>?) |
| ?.map( |
| (key, value) => core.MapEntry( |
| key, |
| TimeWindow.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ), |
| ), |
| recurringWindow: json_.containsKey('recurringWindow') |
| ? RecurringTimeWindow.fromJson( |
| json_['recurringWindow'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final dailyMaintenanceWindow = this.dailyMaintenanceWindow; |
| final maintenanceExclusions = this.maintenanceExclusions; |
| final recurringWindow = this.recurringWindow; |
| return { |
| 'dailyMaintenanceWindow': ?dailyMaintenanceWindow, |
| 'maintenanceExclusions': ?maintenanceExclusions, |
| 'recurringWindow': ?recurringWindow, |
| }; |
| } |
| } |
| |
| /// ManagedMachineLearningDiagnosticsConfig is the configuration for the GKE |
| /// Managed Machine Learning Diagnostics pipeline. |
| class ManagedMachineLearningDiagnosticsConfig { |
| /// Enable/Disable Managed Machine Learning Diagnostics. |
| core.bool? enabled; |
| |
| ManagedMachineLearningDiagnosticsConfig({this.enabled}); |
| |
| ManagedMachineLearningDiagnosticsConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// ManagedOpenTelemetryConfig is the configuration for the GKE Managed |
| /// OpenTelemetry pipeline. |
| class ManagedOpenTelemetryConfig { |
| /// Scope of the Managed OpenTelemetry pipeline. |
| /// Possible string values are: |
| /// - "SCOPE_UNSPECIFIED" : SCOPE_UNSPECIFIED is when the scope is not set. |
| /// - "NONE" : NONE is used to disable the Managed OpenTelemetry pipeline. |
| /// - "COLLECTION_AND_INSTRUMENTATION_COMPONENTS" : |
| /// COLLECTION_AND_INSTRUMENTATION_COMPONENTS is used to enable the Managed |
| /// OpenTelemetry pipeline for collection and instrumentation components. |
| core.String? scope; |
| |
| ManagedOpenTelemetryConfig({this.scope}); |
| |
| ManagedOpenTelemetryConfig.fromJson(core.Map json_) |
| : this(scope: json_['scope'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final scope = this.scope; |
| return {'scope': ?scope}; |
| } |
| } |
| |
| /// ManagedPrometheusConfig defines the configuration for Google Cloud Managed |
| /// Service for Prometheus. |
| class ManagedPrometheusConfig { |
| /// GKE Workload Auto-Monitoring Configuration. |
| AutoMonitoringConfig? autoMonitoringConfig; |
| |
| /// Enable Managed Collection. |
| core.bool? enabled; |
| |
| ManagedPrometheusConfig({this.autoMonitoringConfig, this.enabled}); |
| |
| ManagedPrometheusConfig.fromJson(core.Map json_) |
| : this( |
| autoMonitoringConfig: json_.containsKey('autoMonitoringConfig') |
| ? AutoMonitoringConfig.fromJson( |
| json_['autoMonitoringConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enabled: json_['enabled'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autoMonitoringConfig = this.autoMonitoringConfig; |
| final enabled = this.enabled; |
| return {'autoMonitoringConfig': ?autoMonitoringConfig, 'enabled': ?enabled}; |
| } |
| } |
| |
| /// The authentication information for accessing the master endpoint. |
| /// |
| /// Authentication can be done using HTTP basic auth or using client |
| /// certificates. |
| class MasterAuth { |
| /// Base64-encoded public certificate used by clients to authenticate to the |
| /// cluster endpoint. |
| /// |
| /// Issued only if client_certificate_config is set. |
| /// |
| /// Output only. |
| core.String? clientCertificate; |
| |
| /// Configuration for client certificate authentication on the cluster. |
| /// |
| /// For clusters before v1.12, if no configuration is specified, a client |
| /// certificate is issued. |
| ClientCertificateConfig? clientCertificateConfig; |
| |
| /// Base64-encoded private key used by clients to authenticate to the cluster |
| /// endpoint. |
| /// |
| /// Output only. |
| core.String? clientKey; |
| |
| /// Base64-encoded public certificate that is the root of trust for the |
| /// cluster. |
| /// |
| /// Output only. |
| core.String? clusterCaCertificate; |
| |
| /// The password to use for HTTP basic authentication to the master endpoint. |
| /// |
| /// Because the master endpoint is open to the Internet, you should create a |
| /// strong password. If a password is provided for cluster creation, username |
| /// must be non-empty. Warning: basic authentication is deprecated, and will |
| /// be removed in GKE control plane versions 1.19 and newer. For a list of |
| /// recommended authentication methods, see: |
| /// https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? password; |
| |
| /// The username to use for HTTP basic authentication to the master endpoint. |
| /// |
| /// For clusters v1.6.0 and later, basic authentication can be disabled by |
| /// leaving username unspecified (or setting it to the empty string). Warning: |
| /// basic authentication is deprecated, and will be removed in GKE control |
| /// plane versions 1.19 and newer. For a list of recommended authentication |
| /// methods, see: |
| /// https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? username; |
| |
| MasterAuth({ |
| this.clientCertificate, |
| this.clientCertificateConfig, |
| this.clientKey, |
| this.clusterCaCertificate, |
| this.password, |
| this.username, |
| }); |
| |
| MasterAuth.fromJson(core.Map json_) |
| : this( |
| clientCertificate: json_['clientCertificate'] as core.String?, |
| clientCertificateConfig: json_.containsKey('clientCertificateConfig') |
| ? ClientCertificateConfig.fromJson( |
| json_['clientCertificateConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| clientKey: json_['clientKey'] as core.String?, |
| clusterCaCertificate: json_['clusterCaCertificate'] as core.String?, |
| password: json_['password'] as core.String?, |
| username: json_['username'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clientCertificate = this.clientCertificate; |
| final clientCertificateConfig = this.clientCertificateConfig; |
| final clientKey = this.clientKey; |
| final clusterCaCertificate = this.clusterCaCertificate; |
| final password = this.password; |
| final username = this.username; |
| return { |
| 'clientCertificate': ?clientCertificate, |
| 'clientCertificateConfig': ?clientCertificateConfig, |
| 'clientKey': ?clientKey, |
| 'clusterCaCertificate': ?clusterCaCertificate, |
| 'password': ?password, |
| 'username': ?username, |
| }; |
| } |
| } |
| |
| /// Configuration options for the master authorized networks feature. |
| /// |
| /// Enabled master authorized networks will disallow all external traffic to |
| /// access Kubernetes master through HTTPS except traffic from the given CIDR |
| /// blocks, Google Compute Engine Public IPs and Google Prod IPs. |
| class MasterAuthorizedNetworksConfig { |
| /// cidr_blocks define up to 50 external networks that could access Kubernetes |
| /// master through HTTPS. |
| core.List<CidrBlock>? cidrBlocks; |
| |
| /// Whether or not master authorized networks is enabled. |
| core.bool? enabled; |
| |
| /// Whether master is accessible via Google Compute Engine Public IP |
| /// addresses. |
| core.bool? gcpPublicCidrsAccessEnabled; |
| |
| /// Whether master authorized networks is enforced on private endpoint or not. |
| core.bool? privateEndpointEnforcementEnabled; |
| |
| MasterAuthorizedNetworksConfig({ |
| this.cidrBlocks, |
| this.enabled, |
| this.gcpPublicCidrsAccessEnabled, |
| this.privateEndpointEnforcementEnabled, |
| }); |
| |
| MasterAuthorizedNetworksConfig.fromJson(core.Map json_) |
| : this( |
| cidrBlocks: (json_['cidrBlocks'] as core.List?) |
| ?.map( |
| (value) => CidrBlock.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| enabled: json_['enabled'] as core.bool?, |
| gcpPublicCidrsAccessEnabled: |
| json_['gcpPublicCidrsAccessEnabled'] as core.bool?, |
| privateEndpointEnforcementEnabled: |
| json_['privateEndpointEnforcementEnabled'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final cidrBlocks = this.cidrBlocks; |
| final enabled = this.enabled; |
| final gcpPublicCidrsAccessEnabled = this.gcpPublicCidrsAccessEnabled; |
| final privateEndpointEnforcementEnabled = |
| this.privateEndpointEnforcementEnabled; |
| return { |
| 'cidrBlocks': ?cidrBlocks, |
| 'enabled': ?enabled, |
| 'gcpPublicCidrsAccessEnabled': ?gcpPublicCidrsAccessEnabled, |
| 'privateEndpointEnforcementEnabled': ?privateEndpointEnforcementEnabled, |
| }; |
| } |
| } |
| |
| /// Constraints applied to pods. |
| class MaxPodsConstraint { |
| /// Constraint enforced on the max num of pods per node. |
| core.String? maxPodsPerNode; |
| |
| MaxPodsConstraint({this.maxPodsPerNode}); |
| |
| MaxPodsConstraint.fromJson(core.Map json_) |
| : this(maxPodsPerNode: json_['maxPodsPerNode'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final maxPodsPerNode = this.maxPodsPerNode; |
| return {'maxPodsPerNode': ?maxPodsPerNode}; |
| } |
| } |
| |
| /// The option enables the Kubernetes NUMA-aware Memory Manager feature. |
| /// |
| /// Detailed description about the feature can be found |
| /// [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). |
| class MemoryManager { |
| /// Controls the memory management policy on the Node. |
| /// |
| /// See |
| /// https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies |
| /// The following values are allowed. * "none" * "static" The default value is |
| /// 'none' if unspecified. |
| core.String? policy; |
| |
| MemoryManager({this.policy}); |
| |
| MemoryManager.fromJson(core.Map json_) |
| : this(policy: json_['policy'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final policy = this.policy; |
| return {'policy': ?policy}; |
| } |
| } |
| |
| /// Configuration for issuance of mTLS keys and certificates to Kubernetes pods. |
| class MeshCertificates { |
| /// enable_certificates controls issuance of workload mTLS certificates. |
| /// |
| /// If set, the GKE Workload Identity Certificates controller and node agent |
| /// will be deployed in the cluster, which can then be configured by creating |
| /// a WorkloadCertificateConfig Custom Resource. Requires Workload Identity |
| /// (workload_pool must be non-empty). |
| core.bool? enableCertificates; |
| |
| MeshCertificates({this.enableCertificates}); |
| |
| MeshCertificates.fromJson(core.Map json_) |
| : this(enableCertificates: json_['enableCertificates'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enableCertificates = this.enableCertificates; |
| return {'enableCertificates': ?enableCertificates}; |
| } |
| } |
| |
| /// Progress metric is (string, int|float|string) pair. |
| class Metric { |
| /// For metrics with floating point value. |
| core.double? doubleValue; |
| |
| /// For metrics with integer value. |
| core.String? intValue; |
| |
| /// Metric name, e.g., "nodes total", "percent done". |
| /// |
| /// Required. |
| core.String? name; |
| |
| /// For metrics with custom values (ratios, visual progress, etc.). |
| core.String? stringValue; |
| |
| Metric({this.doubleValue, this.intValue, this.name, this.stringValue}); |
| |
| Metric.fromJson(core.Map json_) |
| : this( |
| doubleValue: (json_['doubleValue'] as core.num?)?.toDouble(), |
| intValue: json_['intValue'] as core.String?, |
| name: json_['name'] as core.String?, |
| stringValue: json_['stringValue'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final doubleValue = this.doubleValue; |
| final intValue = this.intValue; |
| final name = this.name; |
| final stringValue = this.stringValue; |
| return { |
| 'doubleValue': ?doubleValue, |
| 'intValue': ?intValue, |
| 'name': ?name, |
| 'stringValue': ?stringValue, |
| }; |
| } |
| } |
| |
| /// MonitoringComponentConfig is cluster monitoring component configuration. |
| class MonitoringComponentConfig { |
| /// Select components to collect metrics. |
| /// |
| /// An empty set would disable all monitoring. |
| core.List<core.String>? enableComponents; |
| |
| MonitoringComponentConfig({this.enableComponents}); |
| |
| MonitoringComponentConfig.fromJson(core.Map json_) |
| : this( |
| enableComponents: (json_['enableComponents'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enableComponents = this.enableComponents; |
| return {'enableComponents': ?enableComponents}; |
| } |
| } |
| |
| /// MonitoringConfig is cluster monitoring configuration. |
| class MonitoringConfig { |
| /// Configuration of Advanced Datapath Observability features. |
| AdvancedDatapathObservabilityConfig? advancedDatapathObservabilityConfig; |
| |
| /// Monitoring components configuration |
| MonitoringComponentConfig? componentConfig; |
| |
| /// Enable Google Cloud Managed Service for Prometheus in the cluster. |
| ManagedPrometheusConfig? managedPrometheusConfig; |
| |
| MonitoringConfig({ |
| this.advancedDatapathObservabilityConfig, |
| this.componentConfig, |
| this.managedPrometheusConfig, |
| }); |
| |
| MonitoringConfig.fromJson(core.Map json_) |
| : this( |
| advancedDatapathObservabilityConfig: |
| json_.containsKey('advancedDatapathObservabilityConfig') |
| ? AdvancedDatapathObservabilityConfig.fromJson( |
| json_['advancedDatapathObservabilityConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| componentConfig: json_.containsKey('componentConfig') |
| ? MonitoringComponentConfig.fromJson( |
| json_['componentConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| managedPrometheusConfig: json_.containsKey('managedPrometheusConfig') |
| ? ManagedPrometheusConfig.fromJson( |
| json_['managedPrometheusConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final advancedDatapathObservabilityConfig = |
| this.advancedDatapathObservabilityConfig; |
| final componentConfig = this.componentConfig; |
| final managedPrometheusConfig = this.managedPrometheusConfig; |
| return { |
| 'advancedDatapathObservabilityConfig': |
| ?advancedDatapathObservabilityConfig, |
| 'componentConfig': ?componentConfig, |
| 'managedPrometheusConfig': ?managedPrometheusConfig, |
| }; |
| } |
| } |
| |
| /// NetworkConfig reports the relative names of network & subnetwork. |
| class NetworkConfig { |
| /// The desired datapath provider for this cluster. |
| /// |
| /// By default, uses the IPTables-based kube-proxy implementation. |
| /// Possible string values are: |
| /// - "DATAPATH_PROVIDER_UNSPECIFIED" : Default value. |
| /// - "LEGACY_DATAPATH" : Use the IPTables implementation based on kube-proxy. |
| /// - "ADVANCED_DATAPATH" : Use the eBPF based GKE Dataplane V2 with |
| /// additional features. See the |
| /// [GKE Dataplane V2 documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2) |
| /// for more. |
| core.String? datapathProvider; |
| |
| /// Controls whether by default nodes have private IP addresses only. |
| /// |
| /// It is invalid to specify both PrivateClusterConfig.enablePrivateNodes and |
| /// this field at the same time. To update the default setting, use |
| /// ClusterUpdate.desired_default_enable_private_nodes |
| core.bool? defaultEnablePrivateNodes; |
| |
| /// Whether the cluster disables default in-node sNAT rules. |
| /// |
| /// In-node sNAT rules will be disabled when default_snat_status is disabled. |
| /// When disabled is set to false, default IP masquerade rules will be applied |
| /// to the nodes to prevent sNAT on cluster internal traffic. |
| DefaultSnatStatus? defaultSnatStatus; |
| |
| /// Disable L4 load balancer VPC firewalls to enable firewall policies. |
| core.bool? disableL4LbFirewallReconciliation; |
| |
| /// DNSConfig contains clusterDNS config for this cluster. |
| DNSConfig? dnsConfig; |
| |
| /// Whether CiliumClusterwideNetworkPolicy is enabled on this cluster. |
| core.bool? enableCiliumClusterwideNetworkPolicy; |
| |
| /// Whether FQDN Network Policy is enabled on this cluster. |
| core.bool? enableFqdnNetworkPolicy; |
| |
| /// Whether Intra-node visibility is enabled for this cluster. |
| /// |
| /// This makes same node pod to pod traffic visible for VPC network. |
| core.bool? enableIntraNodeVisibility; |
| |
| /// Whether L4ILB Subsetting is enabled for this cluster. |
| core.bool? enableL4ilbSubsetting; |
| |
| /// Whether multi-networking is enabled for this cluster. |
| core.bool? enableMultiNetworking; |
| |
| /// GatewayAPIConfig contains the desired config of Gateway API on this |
| /// cluster. |
| GatewayAPIConfig? gatewayApiConfig; |
| |
| /// Specify the details of in-transit encryption. |
| /// |
| /// Now named inter-node transparent encryption. |
| /// Possible string values are: |
| /// - "IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED" : Unspecified, will be |
| /// inferred as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED. |
| /// - "IN_TRANSIT_ENCRYPTION_DISABLED" : In-transit encryption is disabled. |
| /// - "IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" : Data in-transit is |
| /// encrypted using inter-node transparent encryption. |
| core.String? inTransitEncryptionConfig; |
| |
| /// The relative name of the Google Compute Engine |
| /// [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) |
| /// to which the cluster is connected. |
| /// |
| /// Example: projects/my-project/global/networks/my-network |
| /// |
| /// Output only. |
| core.String? network; |
| |
| /// Network bandwidth tier configuration. |
| ClusterNetworkPerformanceConfig? networkPerformanceConfig; |
| |
| /// The desired state of IPv6 connectivity to Google Services. |
| /// |
| /// By default, no private IPv6 access to or from Google Services (all access |
| /// will be via IPv4) |
| /// Possible string values are: |
| /// - "PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED" : Default value. Same as |
| /// DISABLED |
| /// - "PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED" : No private access to or from |
| /// Google Services |
| /// - "PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE" : Enables private IPv6 access to |
| /// Google Services from GKE |
| /// - "PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL" : Enables private IPv6 access |
| /// to and from Google Services |
| core.String? privateIpv6GoogleAccess; |
| |
| /// ServiceExternalIPsConfig specifies if services with externalIPs field are |
| /// blocked or not. |
| ServiceExternalIPsConfig? serviceExternalIpsConfig; |
| |
| /// The relative name of the Google Compute Engine |
| /// [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the |
| /// cluster is connected. |
| /// |
| /// Example: projects/my-project/regions/us-central1/subnetworks/my-subnet |
| /// |
| /// Output only. |
| core.String? subnetwork; |
| |
| NetworkConfig({ |
| this.datapathProvider, |
| this.defaultEnablePrivateNodes, |
| this.defaultSnatStatus, |
| this.disableL4LbFirewallReconciliation, |
| this.dnsConfig, |
| this.enableCiliumClusterwideNetworkPolicy, |
| this.enableFqdnNetworkPolicy, |
| this.enableIntraNodeVisibility, |
| this.enableL4ilbSubsetting, |
| this.enableMultiNetworking, |
| this.gatewayApiConfig, |
| this.inTransitEncryptionConfig, |
| this.network, |
| this.networkPerformanceConfig, |
| this.privateIpv6GoogleAccess, |
| this.serviceExternalIpsConfig, |
| this.subnetwork, |
| }); |
| |
| NetworkConfig.fromJson(core.Map json_) |
| : this( |
| datapathProvider: json_['datapathProvider'] as core.String?, |
| defaultEnablePrivateNodes: |
| json_['defaultEnablePrivateNodes'] as core.bool?, |
| defaultSnatStatus: json_.containsKey('defaultSnatStatus') |
| ? DefaultSnatStatus.fromJson( |
| json_['defaultSnatStatus'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| disableL4LbFirewallReconciliation: |
| json_['disableL4LbFirewallReconciliation'] as core.bool?, |
| dnsConfig: json_.containsKey('dnsConfig') |
| ? DNSConfig.fromJson( |
| json_['dnsConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enableCiliumClusterwideNetworkPolicy: |
| json_['enableCiliumClusterwideNetworkPolicy'] as core.bool?, |
| enableFqdnNetworkPolicy: json_['enableFqdnNetworkPolicy'] as core.bool?, |
| enableIntraNodeVisibility: |
| json_['enableIntraNodeVisibility'] as core.bool?, |
| enableL4ilbSubsetting: json_['enableL4ilbSubsetting'] as core.bool?, |
| enableMultiNetworking: json_['enableMultiNetworking'] as core.bool?, |
| gatewayApiConfig: json_.containsKey('gatewayApiConfig') |
| ? GatewayAPIConfig.fromJson( |
| json_['gatewayApiConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| inTransitEncryptionConfig: |
| json_['inTransitEncryptionConfig'] as core.String?, |
| network: json_['network'] as core.String?, |
| networkPerformanceConfig: json_.containsKey('networkPerformanceConfig') |
| ? ClusterNetworkPerformanceConfig.fromJson( |
| json_['networkPerformanceConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| privateIpv6GoogleAccess: |
| json_['privateIpv6GoogleAccess'] as core.String?, |
| serviceExternalIpsConfig: json_.containsKey('serviceExternalIpsConfig') |
| ? ServiceExternalIPsConfig.fromJson( |
| json_['serviceExternalIpsConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| subnetwork: json_['subnetwork'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final datapathProvider = this.datapathProvider; |
| final defaultEnablePrivateNodes = this.defaultEnablePrivateNodes; |
| final defaultSnatStatus = this.defaultSnatStatus; |
| final disableL4LbFirewallReconciliation = |
| this.disableL4LbFirewallReconciliation; |
| final dnsConfig = this.dnsConfig; |
| final enableCiliumClusterwideNetworkPolicy = |
| this.enableCiliumClusterwideNetworkPolicy; |
| final enableFqdnNetworkPolicy = this.enableFqdnNetworkPolicy; |
| final enableIntraNodeVisibility = this.enableIntraNodeVisibility; |
| final enableL4ilbSubsetting = this.enableL4ilbSubsetting; |
| final enableMultiNetworking = this.enableMultiNetworking; |
| final gatewayApiConfig = this.gatewayApiConfig; |
| final inTransitEncryptionConfig = this.inTransitEncryptionConfig; |
| final network = this.network; |
| final networkPerformanceConfig = this.networkPerformanceConfig; |
| final privateIpv6GoogleAccess = this.privateIpv6GoogleAccess; |
| final serviceExternalIpsConfig = this.serviceExternalIpsConfig; |
| final subnetwork = this.subnetwork; |
| return { |
| 'datapathProvider': ?datapathProvider, |
| 'defaultEnablePrivateNodes': ?defaultEnablePrivateNodes, |
| 'defaultSnatStatus': ?defaultSnatStatus, |
| 'disableL4LbFirewallReconciliation': ?disableL4LbFirewallReconciliation, |
| 'dnsConfig': ?dnsConfig, |
| 'enableCiliumClusterwideNetworkPolicy': |
| ?enableCiliumClusterwideNetworkPolicy, |
| 'enableFqdnNetworkPolicy': ?enableFqdnNetworkPolicy, |
| 'enableIntraNodeVisibility': ?enableIntraNodeVisibility, |
| 'enableL4ilbSubsetting': ?enableL4ilbSubsetting, |
| 'enableMultiNetworking': ?enableMultiNetworking, |
| 'gatewayApiConfig': ?gatewayApiConfig, |
| 'inTransitEncryptionConfig': ?inTransitEncryptionConfig, |
| 'network': ?network, |
| 'networkPerformanceConfig': ?networkPerformanceConfig, |
| 'privateIpv6GoogleAccess': ?privateIpv6GoogleAccess, |
| 'serviceExternalIpsConfig': ?serviceExternalIpsConfig, |
| 'subnetwork': ?subnetwork, |
| }; |
| } |
| } |
| |
| /// Configuration of all network bandwidth tiers |
| class NetworkPerformanceConfig { |
| /// Specifies the total network bandwidth tier for the NodePool. |
| /// Possible string values are: |
| /// - "TIER_UNSPECIFIED" : Default value |
| /// - "TIER_1" : Higher bandwidth, actual values based on VM size. |
| core.String? totalEgressBandwidthTier; |
| |
| NetworkPerformanceConfig({this.totalEgressBandwidthTier}); |
| |
| NetworkPerformanceConfig.fromJson(core.Map json_) |
| : this( |
| totalEgressBandwidthTier: |
| json_['totalEgressBandwidthTier'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final totalEgressBandwidthTier = this.totalEgressBandwidthTier; |
| return {'totalEgressBandwidthTier': ?totalEgressBandwidthTier}; |
| } |
| } |
| |
| /// Configuration options for the NetworkPolicy feature. |
| /// |
| /// https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ |
| class NetworkPolicy { |
| /// Whether network policy is enabled on the cluster. |
| core.bool? enabled; |
| |
| /// The selected network policy provider. |
| /// Possible string values are: |
| /// - "PROVIDER_UNSPECIFIED" : Not set |
| /// - "CALICO" : Tigera (Calico Felix). |
| core.String? provider; |
| |
| NetworkPolicy({this.enabled, this.provider}); |
| |
| NetworkPolicy.fromJson(core.Map json_) |
| : this( |
| enabled: json_['enabled'] as core.bool?, |
| provider: json_['provider'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| final provider = this.provider; |
| return {'enabled': ?enabled, 'provider': ?provider}; |
| } |
| } |
| |
| /// Configuration for NetworkPolicy. |
| /// |
| /// This only tracks whether the addon is enabled or not on the Master, it does |
| /// not track whether network policy is enabled for the nodes. |
| class NetworkPolicyConfig { |
| /// Whether NetworkPolicy is enabled for this cluster. |
| core.bool? disabled; |
| |
| NetworkPolicyConfig({this.disabled}); |
| |
| NetworkPolicyConfig.fromJson(core.Map json_) |
| : this(disabled: json_['disabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disabled = this.disabled; |
| return {'disabled': ?disabled}; |
| } |
| } |
| |
| /// Collection of Compute Engine network tags that can be applied to a node's |
| /// underlying VM instance. |
| class NetworkTags { |
| /// List of network tags. |
| core.List<core.String>? tags; |
| |
| NetworkTags({this.tags}); |
| |
| NetworkTags.fromJson(core.Map json_) |
| : this( |
| tags: (json_['tags'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final tags = this.tags; |
| return {'tags': ?tags}; |
| } |
| } |
| |
| /// NetworkTierConfig contains network tier information. |
| class NetworkTierConfig { |
| /// Network tier configuration. |
| /// Possible string values are: |
| /// - "NETWORK_TIER_UNSPECIFIED" : By default, use project-level |
| /// configuration. When unspecified, the behavior defaults to |
| /// NETWORK_TIER_DEFAULT. For cluster updates, this implies no action (no-op). |
| /// - "NETWORK_TIER_DEFAULT" : Default network tier. Use project-level |
| /// configuration. User can specify this value, meaning they want to keep the |
| /// same behaviour as before cluster level network tier configuration is |
| /// introduced. This field ensures backward compatibility for the network tier |
| /// of cluster resources, such as node pools and load balancers, for their |
| /// external IP addresses. |
| /// - "NETWORK_TIER_PREMIUM" : Premium network tier. |
| /// - "NETWORK_TIER_STANDARD" : Standard network tier. |
| core.String? networkTier; |
| |
| NetworkTierConfig({this.networkTier}); |
| |
| NetworkTierConfig.fromJson(core.Map json_) |
| : this(networkTier: json_['networkTier'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final networkTier = this.networkTier; |
| return {'networkTier': ?networkTier}; |
| } |
| } |
| |
| /// Specifies the NodeAffinity key, values, and affinity operator according to |
| /// [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity). |
| class NodeAffinity { |
| /// Key for NodeAffinity. |
| core.String? key; |
| |
| /// Operator for NodeAffinity. |
| /// Possible string values are: |
| /// - "OPERATOR_UNSPECIFIED" : Invalid or unspecified affinity operator. |
| /// - "IN" : Affinity operator. |
| /// - "NOT_IN" : Anti-affinity operator. |
| core.String? operator; |
| |
| /// Values for NodeAffinity. |
| core.List<core.String>? values; |
| |
| NodeAffinity({this.key, this.operator, this.values}); |
| |
| NodeAffinity.fromJson(core.Map json_) |
| : this( |
| key: json_['key'] as core.String?, |
| operator: json_['operator'] as core.String?, |
| values: (json_['values'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final key = this.key; |
| final operator = this.operator; |
| final values = this.values; |
| return {'key': ?key, 'operator': ?operator, 'values': ?values}; |
| } |
| } |
| |
| /// Parameters that describe the nodes in a cluster. |
| /// |
| /// GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use |
| /// AutoprovisioningNodePoolDefaults instead. |
| class NodeConfig { |
| /// A list of hardware accelerators to be attached to each node. |
| /// |
| /// See https://cloud.google.com/compute/docs/gpus for more information about |
| /// support for GPUs. |
| core.List<AcceleratorConfig>? accelerators; |
| |
| /// Advanced features for the Compute Engine VM. |
| AdvancedMachineFeatures? advancedMachineFeatures; |
| |
| /// The boot disk configuration for the node pool. |
| BootDisk? bootDisk; |
| |
| /// The Customer Managed Encryption Key used to encrypt the boot disk attached |
| /// to each node in the node pool. |
| /// |
| /// This should be of the form |
| /// projects/\[KEY_PROJECT_ID\]/locations/\[LOCATION\]/keyRings/\[RING_NAME\]/cryptoKeys/\[KEY_NAME\]. |
| /// For more information about protecting resources with Cloud KMS Keys please |
| /// see: |
| /// https://cloud.google.com/compute/docs/disks/customer-managed-encryption |
| core.String? bootDiskKmsKey; |
| |
| /// Confidential nodes config. |
| /// |
| /// All the nodes in the node pool will be Confidential VM once enabled. |
| ConfidentialNodes? confidentialNodes; |
| |
| /// Consolidation delay defines duration after which the Cluster Autoscaler |
| /// can scale down underutilized nodes. |
| /// |
| /// If not set, nodes are scaled down by default behavior, i.e. according to |
| /// the chosen autoscaling profile. |
| core.String? consolidationDelay; |
| |
| /// Parameters for containerd customization. |
| ContainerdConfig? containerdConfig; |
| |
| /// Size of the disk attached to each node, specified in GB. |
| /// |
| /// The smallest allowed disk size is 10GB. If unspecified, the default disk |
| /// size is 100GB. |
| core.int? diskSizeGb; |
| |
| /// Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or |
| /// 'pd-balanced') If unspecified, the default disk type is 'pd-standard' |
| core.String? diskType; |
| |
| /// effective_cgroup_mode is the cgroup mode actually used by the node pool. |
| /// |
| /// It is determined by the cgroup mode specified in the LinuxNodeConfig or |
| /// the default cgroup mode based on the cluster creation version. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "EFFECTIVE_CGROUP_MODE_UNSPECIFIED" : EFFECTIVE_CGROUP_MODE_UNSPECIFIED |
| /// means the cgroup configuration for the node pool is unspecified, i.e. the |
| /// node pool is a Windows node pool. |
| /// - "EFFECTIVE_CGROUP_MODE_V1" : CGROUP_MODE_V1 means the node pool is |
| /// configured to use cgroupv1 for the cgroup configuration. |
| /// - "EFFECTIVE_CGROUP_MODE_V2" : CGROUP_MODE_V2 means the node pool is |
| /// configured to use cgroupv2 for the cgroup configuration. |
| core.String? effectiveCgroupMode; |
| |
| /// Reserved for future use. |
| /// |
| /// Optional. |
| core.bool? enableConfidentialStorage; |
| |
| /// Parameters for the node ephemeral storage using Local SSDs. |
| /// |
| /// If unspecified, ephemeral storage is backed by the boot disk. |
| EphemeralStorageLocalSsdConfig? ephemeralStorageLocalSsdConfig; |
| |
| /// Enable or disable NCCL fast socket for the node pool. |
| FastSocket? fastSocket; |
| |
| /// Flex Start flag for enabling Flex Start VM. |
| core.bool? flexStart; |
| |
| /// Google Container File System (image streaming) configs. |
| GcfsConfig? gcfsConfig; |
| |
| /// The configuration for GPU Direct |
| GPUDirectConfig? gpuDirectConfig; |
| |
| /// Enable or disable gvnic in the node pool. |
| VirtualNIC? gvnic; |
| |
| /// The image type to use for this node. |
| /// |
| /// Note that for a given image type, the latest version of it will be used. |
| /// Please see |
| /// https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for |
| /// available image types. |
| core.String? imageType; |
| |
| /// Node kubelet configs. |
| NodeKubeletConfig? kubeletConfig; |
| |
| /// The Kubernetes labels (key/value pairs) to apply to each node. |
| /// |
| /// The values in this field are added to the set of default labels Kubernetes |
| /// applies to nodes. This field has the following restrictions: * Labels must |
| /// use a valid Kubernetes syntax and character set, as defined in |
| /// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set. |
| /// * This field supports up to 1,024 total characters in a single request. |
| /// Depending on the Kubernetes version, keys in this field might conflict |
| /// with the keys of the default labels, which might change which of your |
| /// labels are applied to the nodes. Assume that the behavior is unpredictable |
| /// and avoid label key conflicts. For more information about the default |
| /// labels, see: |
| /// https://kubernetes.io/docs/reference/labels-annotations-taints/ |
| core.Map<core.String, core.String>? labels; |
| |
| /// Parameters that can be configured on Linux nodes. |
| LinuxNodeConfig? linuxNodeConfig; |
| |
| /// Parameters for using raw-block Local NVMe SSDs. |
| LocalNvmeSsdBlockConfig? localNvmeSsdBlockConfig; |
| |
| /// The number of local SSD disks to be attached to the node. |
| /// |
| /// The limit for this value is dependent upon the maximum number of disks |
| /// available on a machine per zone. See: |
| /// https://cloud.google.com/compute/docs/disks/local-ssd for more |
| /// information. |
| core.int? localSsdCount; |
| |
| /// Specifies which method should be used for encrypting the Local SSDs |
| /// attached to the node. |
| /// Possible string values are: |
| /// - "LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED" : The given node will be |
| /// encrypted using keys managed by Google infrastructure and the keys will be |
| /// deleted when the node is deleted. |
| /// - "STANDARD_ENCRYPTION" : The given node will be encrypted using keys |
| /// managed by Google infrastructure and the keys will be deleted when the |
| /// node is deleted. |
| /// - "EPHEMERAL_KEY_ENCRYPTION" : The given node will opt-in for using |
| /// ephemeral key for encryption of Local SSDs. The Local SSDs will not be |
| /// able to recover data in case of node crash. |
| core.String? localSsdEncryptionMode; |
| |
| /// Logging configuration. |
| NodePoolLoggingConfig? loggingConfig; |
| |
| /// The name of a Google Compute Engine |
| /// [machine type](https://cloud.google.com/compute/docs/machine-types) If |
| /// unspecified, the default machine type is `e2-medium`. |
| core.String? machineType; |
| |
| /// The maximum duration for the nodes to exist. |
| /// |
| /// If unspecified, the nodes can exist indefinitely. |
| core.String? maxRunDuration; |
| |
| /// The metadata key/value pairs assigned to instances in the cluster. |
| /// |
| /// Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 |
| /// bytes in length. These are reflected as part of a URL in the metadata |
| /// server. Additionally, to avoid ambiguity, keys must not conflict with any |
| /// other metadata keys for the project or be one of the reserved keys: - |
| /// "cluster-location" - "cluster-name" - "cluster-uid" - "configure-sh" - |
| /// "containerd-configure-sh" - "enable-os-login" - "gci-ensure-gke-docker" - |
| /// "gci-metrics-enabled" - "gci-update-strategy" - "instance-template" - |
| /// "kube-env" - "startup-script" - "user-data" - "disable-address-manager" - |
| /// "windows-startup-script-ps1" - "common-psm1" - "k8s-node-setup-psm1" - |
| /// "install-ssh-psm1" - "user-profile-psm1" Values are free-form strings, and |
| /// only have meaning as interpreted by the image running in the instance. The |
| /// only restriction placed on them is that each value's size must be less |
| /// than or equal to 32 KB. The total size of all keys and values must be less |
| /// than 512 KB. |
| core.Map<core.String, core.String>? metadata; |
| |
| /// Minimum CPU platform to be used by this instance. |
| /// |
| /// The instance may be scheduled on the specified or newer CPU platform. |
| /// Applicable values are the friendly names of CPU platforms, such as |
| /// `minCpuPlatform: "Intel Haswell"` or `minCpuPlatform: "Intel Sandy |
| /// Bridge"`. For more information, read |
| /// [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) |
| core.String? minCpuPlatform; |
| |
| /// Setting this field will assign instances of this pool to run on the |
| /// specified node group. |
| /// |
| /// This is useful for running workloads on |
| /// [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes). |
| core.String? nodeGroup; |
| |
| /// The set of Google API scopes to be made available on all of the node VMs |
| /// under the "default" service account. |
| /// |
| /// The following scopes are recommended, but not required, and by default are |
| /// not included: * `https://www.googleapis.com/auth/compute` is required for |
| /// mounting persistent storage on your nodes. * |
| /// `https://www.googleapis.com/auth/devstorage.read_only` is required for |
| /// communicating with **gcr.io** (the |
| /// [Artifact Registry](https://cloud.google.com/artifact-registry/)). If |
| /// unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring |
| /// are enabled, in which case their required scopes will be added. |
| core.List<core.String>? oauthScopes; |
| |
| /// Whether the nodes are created as preemptible VM instances. |
| /// |
| /// See: https://cloud.google.com/compute/docs/instances/preemptible for more |
| /// information about preemptible VM instances. |
| core.bool? preemptible; |
| |
| /// The optional reservation affinity. |
| /// |
| /// Setting this field will apply the specified |
| /// [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) |
| /// to this node pool. |
| ReservationAffinity? reservationAffinity; |
| |
| /// The resource labels for the node pool to use to annotate any related |
| /// Google Compute Engine resources. |
| core.Map<core.String, core.String>? resourceLabels; |
| |
| /// A map of resource manager tag keys and values to be attached to the nodes. |
| ResourceManagerTags? resourceManagerTags; |
| |
| /// Sandbox configuration for this node. |
| SandboxConfig? sandboxConfig; |
| |
| /// Secondary boot disk update strategy. |
| SecondaryBootDiskUpdateStrategy? secondaryBootDiskUpdateStrategy; |
| |
| /// List of secondary boot disks attached to the nodes. |
| core.List<SecondaryBootDisk>? secondaryBootDisks; |
| |
| /// The Google Cloud Platform Service Account to be used by the node VMs. |
| /// |
| /// Specify the email address of the Service Account; otherwise, if no Service |
| /// Account is specified, the "default" service account is used. |
| core.String? serviceAccount; |
| |
| /// Shielded Instance options. |
| ShieldedInstanceConfig? shieldedInstanceConfig; |
| |
| /// Parameters for node pools to be backed by shared sole tenant node groups. |
| SoleTenantConfig? soleTenantConfig; |
| |
| /// Spot flag for enabling Spot VM, which is a rebrand of the existing |
| /// preemptible flag. |
| core.bool? spot; |
| |
| /// List of Storage Pools where boot disks are provisioned. |
| core.List<core.String>? storagePools; |
| |
| /// The list of instance tags applied to all nodes. |
| /// |
| /// Tags are used to identify valid sources or targets for network firewalls |
| /// and are specified by the client during cluster or node pool creation. Each |
| /// tag within the list must comply with RFC1035. |
| core.List<core.String>? tags; |
| |
| /// The taint configuration for the node pool. |
| /// |
| /// Optional. |
| TaintConfig? taintConfig; |
| |
| /// List of kubernetes taints to be applied to each node. |
| /// |
| /// For more information, including usage and the valid values, see: |
| /// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
| core.List<NodeTaint>? taints; |
| |
| /// Parameters that can be configured on Windows nodes. |
| WindowsNodeConfig? windowsNodeConfig; |
| |
| /// The workload metadata configuration for this node. |
| WorkloadMetadataConfig? workloadMetadataConfig; |
| |
| NodeConfig({ |
| this.accelerators, |
| this.advancedMachineFeatures, |
| this.bootDisk, |
| this.bootDiskKmsKey, |
| this.confidentialNodes, |
| this.consolidationDelay, |
| this.containerdConfig, |
| this.diskSizeGb, |
| this.diskType, |
| this.effectiveCgroupMode, |
| this.enableConfidentialStorage, |
| this.ephemeralStorageLocalSsdConfig, |
| this.fastSocket, |
| this.flexStart, |
| this.gcfsConfig, |
| this.gpuDirectConfig, |
| this.gvnic, |
| this.imageType, |
| this.kubeletConfig, |
| this.labels, |
| this.linuxNodeConfig, |
| this.localNvmeSsdBlockConfig, |
| this.localSsdCount, |
| this.localSsdEncryptionMode, |
| this.loggingConfig, |
| this.machineType, |
| this.maxRunDuration, |
| this.metadata, |
| this.minCpuPlatform, |
| this.nodeGroup, |
| this.oauthScopes, |
| this.preemptible, |
| this.reservationAffinity, |
| this.resourceLabels, |
| this.resourceManagerTags, |
| this.sandboxConfig, |
| this.secondaryBootDiskUpdateStrategy, |
| this.secondaryBootDisks, |
| this.serviceAccount, |
| this.shieldedInstanceConfig, |
| this.soleTenantConfig, |
| this.spot, |
| this.storagePools, |
| this.tags, |
| this.taintConfig, |
| this.taints, |
| this.windowsNodeConfig, |
| this.workloadMetadataConfig, |
| }); |
| |
| NodeConfig.fromJson(core.Map json_) |
| : this( |
| accelerators: (json_['accelerators'] as core.List?) |
| ?.map( |
| (value) => AcceleratorConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| advancedMachineFeatures: json_.containsKey('advancedMachineFeatures') |
| ? AdvancedMachineFeatures.fromJson( |
| json_['advancedMachineFeatures'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| bootDisk: json_.containsKey('bootDisk') |
| ? BootDisk.fromJson( |
| json_['bootDisk'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| bootDiskKmsKey: json_['bootDiskKmsKey'] as core.String?, |
| confidentialNodes: json_.containsKey('confidentialNodes') |
| ? ConfidentialNodes.fromJson( |
| json_['confidentialNodes'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| consolidationDelay: json_['consolidationDelay'] as core.String?, |
| containerdConfig: json_.containsKey('containerdConfig') |
| ? ContainerdConfig.fromJson( |
| json_['containerdConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| diskSizeGb: json_['diskSizeGb'] as core.int?, |
| diskType: json_['diskType'] as core.String?, |
| effectiveCgroupMode: json_['effectiveCgroupMode'] as core.String?, |
| enableConfidentialStorage: |
| json_['enableConfidentialStorage'] as core.bool?, |
| ephemeralStorageLocalSsdConfig: |
| json_.containsKey('ephemeralStorageLocalSsdConfig') |
| ? EphemeralStorageLocalSsdConfig.fromJson( |
| json_['ephemeralStorageLocalSsdConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| fastSocket: json_.containsKey('fastSocket') |
| ? FastSocket.fromJson( |
| json_['fastSocket'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| flexStart: json_['flexStart'] as core.bool?, |
| gcfsConfig: json_.containsKey('gcfsConfig') |
| ? GcfsConfig.fromJson( |
| json_['gcfsConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gpuDirectConfig: json_.containsKey('gpuDirectConfig') |
| ? GPUDirectConfig.fromJson( |
| json_['gpuDirectConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gvnic: json_.containsKey('gvnic') |
| ? VirtualNIC.fromJson( |
| json_['gvnic'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| imageType: json_['imageType'] as core.String?, |
| kubeletConfig: json_.containsKey('kubeletConfig') |
| ? NodeKubeletConfig.fromJson( |
| json_['kubeletConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| labels: (json_['labels'] as core.Map<core.String, core.dynamic>?)?.map( |
| (key, value) => core.MapEntry(key, value as core.String), |
| ), |
| linuxNodeConfig: json_.containsKey('linuxNodeConfig') |
| ? LinuxNodeConfig.fromJson( |
| json_['linuxNodeConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| localNvmeSsdBlockConfig: json_.containsKey('localNvmeSsdBlockConfig') |
| ? LocalNvmeSsdBlockConfig.fromJson( |
| json_['localNvmeSsdBlockConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| localSsdCount: json_['localSsdCount'] as core.int?, |
| localSsdEncryptionMode: json_['localSsdEncryptionMode'] as core.String?, |
| loggingConfig: json_.containsKey('loggingConfig') |
| ? NodePoolLoggingConfig.fromJson( |
| json_['loggingConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| machineType: json_['machineType'] as core.String?, |
| maxRunDuration: json_['maxRunDuration'] as core.String?, |
| metadata: (json_['metadata'] as core.Map<core.String, core.dynamic>?) |
| ?.map((key, value) => core.MapEntry(key, value as core.String)), |
| minCpuPlatform: json_['minCpuPlatform'] as core.String?, |
| nodeGroup: json_['nodeGroup'] as core.String?, |
| oauthScopes: (json_['oauthScopes'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| preemptible: json_['preemptible'] as core.bool?, |
| reservationAffinity: json_.containsKey('reservationAffinity') |
| ? ReservationAffinity.fromJson( |
| json_['reservationAffinity'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| resourceLabels: |
| (json_['resourceLabels'] as core.Map<core.String, core.dynamic>?) |
| ?.map((key, value) => core.MapEntry(key, value as core.String)), |
| resourceManagerTags: json_.containsKey('resourceManagerTags') |
| ? ResourceManagerTags.fromJson( |
| json_['resourceManagerTags'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| sandboxConfig: json_.containsKey('sandboxConfig') |
| ? SandboxConfig.fromJson( |
| json_['sandboxConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| secondaryBootDiskUpdateStrategy: |
| json_.containsKey('secondaryBootDiskUpdateStrategy') |
| ? SecondaryBootDiskUpdateStrategy.fromJson( |
| json_['secondaryBootDiskUpdateStrategy'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| secondaryBootDisks: (json_['secondaryBootDisks'] as core.List?) |
| ?.map( |
| (value) => SecondaryBootDisk.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| serviceAccount: json_['serviceAccount'] as core.String?, |
| shieldedInstanceConfig: json_.containsKey('shieldedInstanceConfig') |
| ? ShieldedInstanceConfig.fromJson( |
| json_['shieldedInstanceConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| soleTenantConfig: json_.containsKey('soleTenantConfig') |
| ? SoleTenantConfig.fromJson( |
| json_['soleTenantConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| spot: json_['spot'] as core.bool?, |
| storagePools: (json_['storagePools'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| tags: (json_['tags'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| taintConfig: json_.containsKey('taintConfig') |
| ? TaintConfig.fromJson( |
| json_['taintConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| taints: (json_['taints'] as core.List?) |
| ?.map( |
| (value) => NodeTaint.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| windowsNodeConfig: json_.containsKey('windowsNodeConfig') |
| ? WindowsNodeConfig.fromJson( |
| json_['windowsNodeConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| workloadMetadataConfig: json_.containsKey('workloadMetadataConfig') |
| ? WorkloadMetadataConfig.fromJson( |
| json_['workloadMetadataConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final accelerators = this.accelerators; |
| final advancedMachineFeatures = this.advancedMachineFeatures; |
| final bootDisk = this.bootDisk; |
| final bootDiskKmsKey = this.bootDiskKmsKey; |
| final confidentialNodes = this.confidentialNodes; |
| final consolidationDelay = this.consolidationDelay; |
| final containerdConfig = this.containerdConfig; |
| final diskSizeGb = this.diskSizeGb; |
| final diskType = this.diskType; |
| final effectiveCgroupMode = this.effectiveCgroupMode; |
| final enableConfidentialStorage = this.enableConfidentialStorage; |
| final ephemeralStorageLocalSsdConfig = this.ephemeralStorageLocalSsdConfig; |
| final fastSocket = this.fastSocket; |
| final flexStart = this.flexStart; |
| final gcfsConfig = this.gcfsConfig; |
| final gpuDirectConfig = this.gpuDirectConfig; |
| final gvnic = this.gvnic; |
| final imageType = this.imageType; |
| final kubeletConfig = this.kubeletConfig; |
| final labels = this.labels; |
| final linuxNodeConfig = this.linuxNodeConfig; |
| final localNvmeSsdBlockConfig = this.localNvmeSsdBlockConfig; |
| final localSsdCount = this.localSsdCount; |
| final localSsdEncryptionMode = this.localSsdEncryptionMode; |
| final loggingConfig = this.loggingConfig; |
| final machineType = this.machineType; |
| final maxRunDuration = this.maxRunDuration; |
| final metadata = this.metadata; |
| final minCpuPlatform = this.minCpuPlatform; |
| final nodeGroup = this.nodeGroup; |
| final oauthScopes = this.oauthScopes; |
| final preemptible = this.preemptible; |
| final reservationAffinity = this.reservationAffinity; |
| final resourceLabels = this.resourceLabels; |
| final resourceManagerTags = this.resourceManagerTags; |
| final sandboxConfig = this.sandboxConfig; |
| final secondaryBootDiskUpdateStrategy = |
| this.secondaryBootDiskUpdateStrategy; |
| final secondaryBootDisks = this.secondaryBootDisks; |
| final serviceAccount = this.serviceAccount; |
| final shieldedInstanceConfig = this.shieldedInstanceConfig; |
| final soleTenantConfig = this.soleTenantConfig; |
| final spot = this.spot; |
| final storagePools = this.storagePools; |
| final tags = this.tags; |
| final taintConfig = this.taintConfig; |
| final taints = this.taints; |
| final windowsNodeConfig = this.windowsNodeConfig; |
| final workloadMetadataConfig = this.workloadMetadataConfig; |
| return { |
| 'accelerators': ?accelerators, |
| 'advancedMachineFeatures': ?advancedMachineFeatures, |
| 'bootDisk': ?bootDisk, |
| 'bootDiskKmsKey': ?bootDiskKmsKey, |
| 'confidentialNodes': ?confidentialNodes, |
| 'consolidationDelay': ?consolidationDelay, |
| 'containerdConfig': ?containerdConfig, |
| 'diskSizeGb': ?diskSizeGb, |
| 'diskType': ?diskType, |
| 'effectiveCgroupMode': ?effectiveCgroupMode, |
| 'enableConfidentialStorage': ?enableConfidentialStorage, |
| 'ephemeralStorageLocalSsdConfig': ?ephemeralStorageLocalSsdConfig, |
| 'fastSocket': ?fastSocket, |
| 'flexStart': ?flexStart, |
| 'gcfsConfig': ?gcfsConfig, |
| 'gpuDirectConfig': ?gpuDirectConfig, |
| 'gvnic': ?gvnic, |
| 'imageType': ?imageType, |
| 'kubeletConfig': ?kubeletConfig, |
| 'labels': ?labels, |
| 'linuxNodeConfig': ?linuxNodeConfig, |
| 'localNvmeSsdBlockConfig': ?localNvmeSsdBlockConfig, |
| 'localSsdCount': ?localSsdCount, |
| 'localSsdEncryptionMode': ?localSsdEncryptionMode, |
| 'loggingConfig': ?loggingConfig, |
| 'machineType': ?machineType, |
| 'maxRunDuration': ?maxRunDuration, |
| 'metadata': ?metadata, |
| 'minCpuPlatform': ?minCpuPlatform, |
| 'nodeGroup': ?nodeGroup, |
| 'oauthScopes': ?oauthScopes, |
| 'preemptible': ?preemptible, |
| 'reservationAffinity': ?reservationAffinity, |
| 'resourceLabels': ?resourceLabels, |
| 'resourceManagerTags': ?resourceManagerTags, |
| 'sandboxConfig': ?sandboxConfig, |
| 'secondaryBootDiskUpdateStrategy': ?secondaryBootDiskUpdateStrategy, |
| 'secondaryBootDisks': ?secondaryBootDisks, |
| 'serviceAccount': ?serviceAccount, |
| 'shieldedInstanceConfig': ?shieldedInstanceConfig, |
| 'soleTenantConfig': ?soleTenantConfig, |
| 'spot': ?spot, |
| 'storagePools': ?storagePools, |
| 'tags': ?tags, |
| 'taintConfig': ?taintConfig, |
| 'taints': ?taints, |
| 'windowsNodeConfig': ?windowsNodeConfig, |
| 'workloadMetadataConfig': ?workloadMetadataConfig, |
| }; |
| } |
| } |
| |
| /// Subset of NodeConfig message that has defaults. |
| class NodeConfigDefaults { |
| /// Parameters for containerd customization. |
| ContainerdConfig? containerdConfig; |
| |
| /// GCFS (Google Container File System, also known as Riptide) options. |
| GcfsConfig? gcfsConfig; |
| |
| /// Logging configuration for node pools. |
| NodePoolLoggingConfig? loggingConfig; |
| |
| /// NodeKubeletConfig controls the defaults for new node-pools. |
| /// |
| /// Currently only `insecure_kubelet_readonly_port_enabled` can be set here. |
| NodeKubeletConfig? nodeKubeletConfig; |
| |
| NodeConfigDefaults({ |
| this.containerdConfig, |
| this.gcfsConfig, |
| this.loggingConfig, |
| this.nodeKubeletConfig, |
| }); |
| |
| NodeConfigDefaults.fromJson(core.Map json_) |
| : this( |
| containerdConfig: json_.containsKey('containerdConfig') |
| ? ContainerdConfig.fromJson( |
| json_['containerdConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gcfsConfig: json_.containsKey('gcfsConfig') |
| ? GcfsConfig.fromJson( |
| json_['gcfsConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| loggingConfig: json_.containsKey('loggingConfig') |
| ? NodePoolLoggingConfig.fromJson( |
| json_['loggingConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodeKubeletConfig: json_.containsKey('nodeKubeletConfig') |
| ? NodeKubeletConfig.fromJson( |
| json_['nodeKubeletConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final containerdConfig = this.containerdConfig; |
| final gcfsConfig = this.gcfsConfig; |
| final loggingConfig = this.loggingConfig; |
| final nodeKubeletConfig = this.nodeKubeletConfig; |
| return { |
| 'containerdConfig': ?containerdConfig, |
| 'gcfsConfig': ?gcfsConfig, |
| 'loggingConfig': ?loggingConfig, |
| 'nodeKubeletConfig': ?nodeKubeletConfig, |
| }; |
| } |
| } |
| |
| /// NodeDrainConfig contains the node drain related configurations for this node |
| /// pool. |
| class NodeDrainConfig { |
| /// Whether to respect PDB during node pool deletion. |
| core.bool? respectPdbDuringNodePoolDeletion; |
| |
| NodeDrainConfig({this.respectPdbDuringNodePoolDeletion}); |
| |
| NodeDrainConfig.fromJson(core.Map json_) |
| : this( |
| respectPdbDuringNodePoolDeletion: |
| json_['respectPdbDuringNodePoolDeletion'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final respectPdbDuringNodePoolDeletion = |
| this.respectPdbDuringNodePoolDeletion; |
| return { |
| 'respectPdbDuringNodePoolDeletion': ?respectPdbDuringNodePoolDeletion, |
| }; |
| } |
| } |
| |
| /// Configuration for kernel module loading on nodes. |
| class NodeKernelModuleLoading { |
| /// Set the node module loading policy for nodes in the node pool. |
| /// Possible string values are: |
| /// - "POLICY_UNSPECIFIED" : Default behavior. GKE selects the image based on |
| /// node type. For CPU and TPU nodes, the image will not allow loading |
| /// external kernel modules. For GPU nodes, the image will allow loading any |
| /// module, whether it is signed or not. |
| /// - "ENFORCE_SIGNED_MODULES" : Enforced signature verification: Node pools |
| /// will use a Container-Optimized OS image configured to allow loading of |
| /// *Google-signed* external kernel modules. Loadpin is enabled but configured |
| /// to exclude modules, and kernel module signature checking is enforced. |
| /// - "DO_NOT_ENFORCE_SIGNED_MODULES" : Mirrors existing DEFAULT behavior: For |
| /// CPU and TPU nodes, the image will not allow loading external kernel |
| /// modules. For GPU nodes, the image will allow loading any module, whether |
| /// it is signed or not. |
| core.String? policy; |
| |
| NodeKernelModuleLoading({this.policy}); |
| |
| NodeKernelModuleLoading.fromJson(core.Map json_) |
| : this(policy: json_['policy'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final policy = this.policy; |
| return {'policy': ?policy}; |
| } |
| } |
| |
| /// Node kubelet configs. |
| class NodeKubeletConfig { |
| /// Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns |
| /// (ending in `*`). |
| /// |
| /// The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, |
| /// `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty |
| /// means they cannot be set on Pods. To allow certain sysctls or sysctl |
| /// patterns to be set on Pods, list them separated by commas. For example: |
| /// `kernel.msg*,net.ipv4.route.min_pmtu`. See |
| /// https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for |
| /// more details. |
| /// |
| /// Optional. |
| core.List<core.String>? allowedUnsafeSysctls; |
| |
| /// Defines the maximum number of container log files that can be present for |
| /// a container. |
| /// |
| /// See |
| /// https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation |
| /// The value must be an integer between 2 and 10, inclusive. The default |
| /// value is 5 if unspecified. |
| /// |
| /// Optional. |
| core.int? containerLogMaxFiles; |
| |
| /// Defines the maximum size of the container log file before it is rotated. |
| /// |
| /// See |
| /// https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation |
| /// Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are |
| /// Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that |
| /// the total container log size (container_log_max_size * |
| /// container_log_max_files) cannot exceed 1% of the total storage of the |
| /// node, to avoid disk pressure caused by log files. The default value is |
| /// 10Mi if unspecified. |
| /// |
| /// Optional. |
| core.String? containerLogMaxSize; |
| |
| /// Enable CPU CFS quota enforcement for containers that specify CPU limits. |
| /// |
| /// This option is enabled by default which makes kubelet use CFS quota |
| /// (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to |
| /// enforce container CPU limits. Otherwise, CPU limits will not be enforced |
| /// at all. Disable this option to mitigate CPU throttling problems while |
| /// still having your pods to be in Guaranteed QoS class by specifying the CPU |
| /// limits. The default value is 'true' if unspecified. |
| core.bool? cpuCfsQuota; |
| |
| /// Set the CPU CFS quota period value 'cpu.cfs_period_us'. |
| /// |
| /// The string must be a sequence of decimal numbers, each with optional |
| /// fraction and a unit suffix, such as "300ms". Valid time units are "ns", |
| /// "us" (or "µs"), "ms", "s", "m", "h". The value must be a positive duration |
| /// between 1ms and 1 second, inclusive. |
| core.String? cpuCfsQuotaPeriod; |
| |
| /// Control the CPU management policy on the node. |
| /// |
| /// See |
| /// https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ |
| /// The following values are allowed. * "none": the default, which represents |
| /// the existing scheduling behavior. * "static": allows pods with certain |
| /// resource characteristics to be granted increased CPU affinity and |
| /// exclusivity on the node. The default value is 'none' if unspecified. |
| core.String? cpuManagerPolicy; |
| |
| /// Contains configuration options to modify node-level parameters for |
| /// container restart behavior. |
| /// |
| /// Optional. |
| CrashLoopBackOffConfig? crashLoopBackOff; |
| |
| /// eviction_max_pod_grace_period_seconds is the maximum allowed grace period |
| /// (in seconds) to use when terminating pods in response to a soft eviction |
| /// threshold being met. |
| /// |
| /// This value effectively caps the Pod's terminationGracePeriodSeconds value |
| /// during soft evictions. Default: 0. Range: \[0, 300\]. |
| /// |
| /// Optional. |
| core.int? evictionMaxPodGracePeriodSeconds; |
| |
| /// eviction_minimum_reclaim is a map of signal names to quantities that |
| /// defines minimum reclaims, which describe the minimum amount of a given |
| /// resource the kubelet will reclaim when performing a pod eviction while |
| /// that resource is under pressure. |
| /// |
| /// Optional. |
| EvictionMinimumReclaim? evictionMinimumReclaim; |
| |
| /// eviction_soft is a map of signal names to quantities that defines soft |
| /// eviction thresholds. |
| /// |
| /// Each signal is compared to its corresponding threshold to determine if a |
| /// pod eviction should occur. |
| /// |
| /// Optional. |
| EvictionSignals? evictionSoft; |
| |
| /// eviction_soft_grace_period is a map of signal names to quantities that |
| /// defines grace periods for each soft eviction signal. |
| /// |
| /// The grace period is the amount of time that a pod must be under pressure |
| /// before an eviction occurs. |
| /// |
| /// Optional. |
| EvictionGracePeriod? evictionSoftGracePeriod; |
| |
| /// Defines the percent of disk usage after which image garbage collection is |
| /// always run. |
| /// |
| /// The percent is calculated as this field value out of 100. The value must |
| /// be between 10 and 85, inclusive and greater than |
| /// image_gc_low_threshold_percent. The default value is 85 if unspecified. |
| /// |
| /// Optional. |
| core.int? imageGcHighThresholdPercent; |
| |
| /// Defines the percent of disk usage before which image garbage collection is |
| /// never run. |
| /// |
| /// Lowest disk usage to garbage collect to. The percent is calculated as this |
| /// field value out of 100. The value must be between 10 and 85, inclusive and |
| /// smaller than image_gc_high_threshold_percent. The default value is 80 if |
| /// unspecified. |
| /// |
| /// Optional. |
| core.int? imageGcLowThresholdPercent; |
| |
| /// Defines the maximum age an image can be unused before it is garbage |
| /// collected. |
| /// |
| /// The string must be a sequence of decimal numbers, each with optional |
| /// fraction and a unit suffix, such as "300s", "1.5h", and "2h45m". Valid |
| /// time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must |
| /// be a positive duration greater than image_minimum_gc_age or "0s". The |
| /// default value is "0s" if unspecified, which disables this field, meaning |
| /// images won't be garbage collected based on being unused for too long. |
| /// |
| /// Optional. |
| core.String? imageMaximumGcAge; |
| |
| /// Defines the minimum age for an unused image before it is garbage |
| /// collected. |
| /// |
| /// The string must be a sequence of decimal numbers, each with optional |
| /// fraction and a unit suffix, such as "300s", "1.5h", and "2h45m". Valid |
| /// time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must |
| /// be a positive duration less than or equal to 2 minutes. The default value |
| /// is "2m0s" if unspecified. |
| /// |
| /// Optional. |
| core.String? imageMinimumGcAge; |
| |
| /// Enable or disable Kubelet read only port. |
| core.bool? insecureKubeletReadonlyPortEnabled; |
| |
| /// Defines the maximum number of image pulls in parallel. |
| /// |
| /// The range is 2 to 5, inclusive. The default value is 2 or 3 depending on |
| /// the disk type. See |
| /// https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls |
| /// for more details. |
| /// |
| /// Optional. |
| core.int? maxParallelImagePulls; |
| |
| /// Controls NUMA-aware Memory Manager configuration on the node. |
| /// |
| /// For more information, see: |
| /// https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/ |
| /// |
| /// Optional. |
| MemoryManager? memoryManager; |
| |
| /// Set the Pod PID limits. |
| /// |
| /// See |
| /// https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits |
| /// Controls the maximum number of processes allowed to run in a pod. The |
| /// value must be greater than or equal to 1024 and less than 4194304. |
| core.String? podPidsLimit; |
| |
| /// shutdown_grace_period_critical_pods_seconds is the maximum allowed grace |
| /// period (in seconds) used to terminate critical pods during a node |
| /// shutdown. |
| /// |
| /// This value should be \<= shutdown_grace_period_seconds, and is only valid |
| /// if shutdown_grace_period_seconds is set. |
| /// https://kubernetes.io/docs/concepts/cluster-administration/node-shutdown/ |
| /// Range: \[0, 120\]. |
| /// |
| /// Optional. |
| core.int? shutdownGracePeriodCriticalPodsSeconds; |
| |
| /// shutdown_grace_period_seconds is the maximum allowed grace period (in |
| /// seconds) the total duration that the node should delay the shutdown during |
| /// a graceful shutdown. |
| /// |
| /// This is the total grace period for pod termination for both regular and |
| /// critical pods. |
| /// https://kubernetes.io/docs/concepts/cluster-administration/node-shutdown/ |
| /// If set to 0, node will not enable the graceful node shutdown |
| /// functionality. This field is only valid for Spot VMs. Allowed values: 0, |
| /// 30, 120. |
| /// |
| /// Optional. |
| core.int? shutdownGracePeriodSeconds; |
| |
| /// Defines whether to enable single process OOM killer. |
| /// |
| /// If true, will prevent the memory.oom.group flag from being set for |
| /// container cgroups in cgroups v2. This causes processes in the container to |
| /// be OOM killed individually instead of as a group. |
| /// |
| /// Optional. |
| core.bool? singleProcessOomKill; |
| |
| /// Controls Topology Manager configuration on the node. |
| /// |
| /// For more information, see: |
| /// https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ |
| /// |
| /// Optional. |
| TopologyManager? topologyManager; |
| |
| NodeKubeletConfig({ |
| this.allowedUnsafeSysctls, |
| this.containerLogMaxFiles, |
| this.containerLogMaxSize, |
| this.cpuCfsQuota, |
| this.cpuCfsQuotaPeriod, |
| this.cpuManagerPolicy, |
| this.crashLoopBackOff, |
| this.evictionMaxPodGracePeriodSeconds, |
| this.evictionMinimumReclaim, |
| this.evictionSoft, |
| this.evictionSoftGracePeriod, |
| this.imageGcHighThresholdPercent, |
| this.imageGcLowThresholdPercent, |
| this.imageMaximumGcAge, |
| this.imageMinimumGcAge, |
| this.insecureKubeletReadonlyPortEnabled, |
| this.maxParallelImagePulls, |
| this.memoryManager, |
| this.podPidsLimit, |
| this.shutdownGracePeriodCriticalPodsSeconds, |
| this.shutdownGracePeriodSeconds, |
| this.singleProcessOomKill, |
| this.topologyManager, |
| }); |
| |
| NodeKubeletConfig.fromJson(core.Map json_) |
| : this( |
| allowedUnsafeSysctls: (json_['allowedUnsafeSysctls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| containerLogMaxFiles: json_['containerLogMaxFiles'] as core.int?, |
| containerLogMaxSize: json_['containerLogMaxSize'] as core.String?, |
| cpuCfsQuota: json_['cpuCfsQuota'] as core.bool?, |
| cpuCfsQuotaPeriod: json_['cpuCfsQuotaPeriod'] as core.String?, |
| cpuManagerPolicy: json_['cpuManagerPolicy'] as core.String?, |
| crashLoopBackOff: json_.containsKey('crashLoopBackOff') |
| ? CrashLoopBackOffConfig.fromJson( |
| json_['crashLoopBackOff'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| evictionMaxPodGracePeriodSeconds: |
| json_['evictionMaxPodGracePeriodSeconds'] as core.int?, |
| evictionMinimumReclaim: json_.containsKey('evictionMinimumReclaim') |
| ? EvictionMinimumReclaim.fromJson( |
| json_['evictionMinimumReclaim'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| evictionSoft: json_.containsKey('evictionSoft') |
| ? EvictionSignals.fromJson( |
| json_['evictionSoft'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| evictionSoftGracePeriod: json_.containsKey('evictionSoftGracePeriod') |
| ? EvictionGracePeriod.fromJson( |
| json_['evictionSoftGracePeriod'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| imageGcHighThresholdPercent: |
| json_['imageGcHighThresholdPercent'] as core.int?, |
| imageGcLowThresholdPercent: |
| json_['imageGcLowThresholdPercent'] as core.int?, |
| imageMaximumGcAge: json_['imageMaximumGcAge'] as core.String?, |
| imageMinimumGcAge: json_['imageMinimumGcAge'] as core.String?, |
| insecureKubeletReadonlyPortEnabled: |
| json_['insecureKubeletReadonlyPortEnabled'] as core.bool?, |
| maxParallelImagePulls: json_['maxParallelImagePulls'] as core.int?, |
| memoryManager: json_.containsKey('memoryManager') |
| ? MemoryManager.fromJson( |
| json_['memoryManager'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| podPidsLimit: json_['podPidsLimit'] as core.String?, |
| shutdownGracePeriodCriticalPodsSeconds: |
| json_['shutdownGracePeriodCriticalPodsSeconds'] as core.int?, |
| shutdownGracePeriodSeconds: |
| json_['shutdownGracePeriodSeconds'] as core.int?, |
| singleProcessOomKill: json_['singleProcessOomKill'] as core.bool?, |
| topologyManager: json_.containsKey('topologyManager') |
| ? TopologyManager.fromJson( |
| json_['topologyManager'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final allowedUnsafeSysctls = this.allowedUnsafeSysctls; |
| final containerLogMaxFiles = this.containerLogMaxFiles; |
| final containerLogMaxSize = this.containerLogMaxSize; |
| final cpuCfsQuota = this.cpuCfsQuota; |
| final cpuCfsQuotaPeriod = this.cpuCfsQuotaPeriod; |
| final cpuManagerPolicy = this.cpuManagerPolicy; |
| final crashLoopBackOff = this.crashLoopBackOff; |
| final evictionMaxPodGracePeriodSeconds = |
| this.evictionMaxPodGracePeriodSeconds; |
| final evictionMinimumReclaim = this.evictionMinimumReclaim; |
| final evictionSoft = this.evictionSoft; |
| final evictionSoftGracePeriod = this.evictionSoftGracePeriod; |
| final imageGcHighThresholdPercent = this.imageGcHighThresholdPercent; |
| final imageGcLowThresholdPercent = this.imageGcLowThresholdPercent; |
| final imageMaximumGcAge = this.imageMaximumGcAge; |
| final imageMinimumGcAge = this.imageMinimumGcAge; |
| final insecureKubeletReadonlyPortEnabled = |
| this.insecureKubeletReadonlyPortEnabled; |
| final maxParallelImagePulls = this.maxParallelImagePulls; |
| final memoryManager = this.memoryManager; |
| final podPidsLimit = this.podPidsLimit; |
| final shutdownGracePeriodCriticalPodsSeconds = |
| this.shutdownGracePeriodCriticalPodsSeconds; |
| final shutdownGracePeriodSeconds = this.shutdownGracePeriodSeconds; |
| final singleProcessOomKill = this.singleProcessOomKill; |
| final topologyManager = this.topologyManager; |
| return { |
| 'allowedUnsafeSysctls': ?allowedUnsafeSysctls, |
| 'containerLogMaxFiles': ?containerLogMaxFiles, |
| 'containerLogMaxSize': ?containerLogMaxSize, |
| 'cpuCfsQuota': ?cpuCfsQuota, |
| 'cpuCfsQuotaPeriod': ?cpuCfsQuotaPeriod, |
| 'cpuManagerPolicy': ?cpuManagerPolicy, |
| 'crashLoopBackOff': ?crashLoopBackOff, |
| 'evictionMaxPodGracePeriodSeconds': ?evictionMaxPodGracePeriodSeconds, |
| 'evictionMinimumReclaim': ?evictionMinimumReclaim, |
| 'evictionSoft': ?evictionSoft, |
| 'evictionSoftGracePeriod': ?evictionSoftGracePeriod, |
| 'imageGcHighThresholdPercent': ?imageGcHighThresholdPercent, |
| 'imageGcLowThresholdPercent': ?imageGcLowThresholdPercent, |
| 'imageMaximumGcAge': ?imageMaximumGcAge, |
| 'imageMinimumGcAge': ?imageMinimumGcAge, |
| 'insecureKubeletReadonlyPortEnabled': ?insecureKubeletReadonlyPortEnabled, |
| 'maxParallelImagePulls': ?maxParallelImagePulls, |
| 'memoryManager': ?memoryManager, |
| 'podPidsLimit': ?podPidsLimit, |
| 'shutdownGracePeriodCriticalPodsSeconds': |
| ?shutdownGracePeriodCriticalPodsSeconds, |
| 'shutdownGracePeriodSeconds': ?shutdownGracePeriodSeconds, |
| 'singleProcessOomKill': ?singleProcessOomKill, |
| 'topologyManager': ?topologyManager, |
| }; |
| } |
| } |
| |
| /// Collection of node-level |
| /// [Kubernetes labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels). |
| typedef NodeLabels = $Labels; |
| |
| /// NodeManagement defines the set of node management services turned on for the |
| /// node pool. |
| class NodeManagement { |
| /// A flag that specifies whether the node auto-repair is enabled for the node |
| /// pool. |
| /// |
| /// If enabled, the nodes in this node pool will be monitored and, if they |
| /// fail health checks too many times, an automatic repair action will be |
| /// triggered. |
| core.bool? autoRepair; |
| |
| /// A flag that specifies whether node auto-upgrade is enabled for the node |
| /// pool. |
| /// |
| /// If enabled, node auto-upgrade helps keep the nodes in your node pool up to |
| /// date with the latest release version of Kubernetes. |
| core.bool? autoUpgrade; |
| |
| /// Specifies the Auto Upgrade knobs for the node pool. |
| AutoUpgradeOptions? upgradeOptions; |
| |
| NodeManagement({this.autoRepair, this.autoUpgrade, this.upgradeOptions}); |
| |
| NodeManagement.fromJson(core.Map json_) |
| : this( |
| autoRepair: json_['autoRepair'] as core.bool?, |
| autoUpgrade: json_['autoUpgrade'] as core.bool?, |
| upgradeOptions: json_.containsKey('upgradeOptions') |
| ? AutoUpgradeOptions.fromJson( |
| json_['upgradeOptions'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autoRepair = this.autoRepair; |
| final autoUpgrade = this.autoUpgrade; |
| final upgradeOptions = this.upgradeOptions; |
| return { |
| 'autoRepair': ?autoRepair, |
| 'autoUpgrade': ?autoUpgrade, |
| 'upgradeOptions': ?upgradeOptions, |
| }; |
| } |
| } |
| |
| /// Parameters for node pool-level network config. |
| class NodeNetworkConfig { |
| /// The accelerator network profile for the node pool. |
| /// |
| /// For now the only valid value is "auto". If specified, the network |
| /// configuration of the nodes in this node pool will be managed by this |
| /// profile for the supported machine types, zone, etc. |
| /// |
| /// Immutable. |
| core.String? acceleratorNetworkProfile; |
| |
| /// We specify the additional node networks for this node pool using this |
| /// list. |
| /// |
| /// Each node network corresponds to an additional interface |
| core.List<AdditionalNodeNetworkConfig>? additionalNodeNetworkConfigs; |
| |
| /// We specify the additional pod networks for this node pool using this list. |
| /// |
| /// Each pod network corresponds to an additional alias IP range for the node |
| core.List<AdditionalPodNetworkConfig>? additionalPodNetworkConfigs; |
| |
| /// Input only. |
| /// |
| /// Whether to create a new range for pod IPs in this node pool. Defaults are |
| /// provided for `pod_range` and `pod_ipv4_cidr_block` if they are not |
| /// specified. If neither `create_pod_range` or `pod_range` are specified, the |
| /// cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is |
| /// used. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. |
| /// This field cannot be changed after the node pool has been created. |
| core.bool? createPodRange; |
| |
| /// Whether nodes have internal IP addresses only. |
| /// |
| /// If enable_private_nodes is not specified, then the value is derived from |
| /// Cluster.NetworkConfig.default_enable_private_nodes |
| core.bool? enablePrivateNodes; |
| |
| /// Network bandwidth tier configuration. |
| NetworkPerformanceConfig? networkPerformanceConfig; |
| |
| /// The network tier configuration for the node pool inherits from the |
| /// cluster-level configuration and remains immutable throughout the node |
| /// pool's lifecycle, including during upgrades. |
| /// |
| /// Output only. |
| NetworkTierConfig? networkTierConfig; |
| |
| /// \[PRIVATE FIELD\] Pod CIDR size overprovisioning config for the node pool. |
| /// |
| /// Pod CIDR size per node depends on max_pods_per_node. By default, the value |
| /// of max_pods_per_node is rounded off to next power of 2 and we then double |
| /// that to get the size of pod CIDR block per node. Example: |
| /// max_pods_per_node of 30 would result in 64 IPs (/26). This config can |
| /// disable the doubling of IPs (we still round off to next power of 2) |
| /// Example: max_pods_per_node of 30 will result in 32 IPs (/27) when |
| /// overprovisioning is disabled. |
| PodCIDROverprovisionConfig? podCidrOverprovisionConfig; |
| |
| /// The IP address range for pod IPs in this node pool. |
| /// |
| /// Only applicable if `create_pod_range` is true. Set to blank to have a |
| /// range chosen with the default size. Set to /netmask (e.g. `/14`) to have a |
| /// range chosen with a specific netmask. Set to a |
| /// [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) |
| /// notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only |
| /// applicable if `ip_allocation_policy.use_ip_aliases` is true. This field |
| /// cannot be changed after the node pool has been created. |
| core.String? podIpv4CidrBlock; |
| |
| /// The utilization of the IPv4 range for the pod. |
| /// |
| /// The ratio is Usage/\[Total number of IPs in the secondary range\], |
| /// Usage=numNodes*numZones*podIPsPerNode. |
| /// |
| /// Output only. |
| core.double? podIpv4RangeUtilization; |
| |
| /// The ID of the secondary range for pod IPs. |
| /// |
| /// If `create_pod_range` is true, this ID is used for the new range. If |
| /// `create_pod_range` is false, uses an existing secondary range with this |
| /// ID. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This |
| /// field cannot be changed after the node pool has been created. |
| core.String? podRange; |
| |
| /// The subnetwork name/path for the node pool. |
| /// |
| /// Format: projects/{project}/regions/{region}/subnetworks/{subnetwork} If |
| /// the cluster is associated with multiple subnetworks, the subnetwork can be |
| /// either: - A user supplied subnetwork name during node pool creation (e.g., |
| /// `my-subnet`). The name must be between 1 and 63 characters long, start |
| /// with a letter, contain only letters, numbers, and hyphens, and end with a |
| /// letter or a number. - A full subnetwork path during node pool creation, |
| /// such as `projects/gke-project/regions/us-central1/subnetworks/my-subnet` - |
| /// A subnetwork path picked based on the IP utilization during node pool |
| /// creation and is immutable. |
| /// |
| /// Optional. |
| core.String? subnetwork; |
| |
| NodeNetworkConfig({ |
| this.acceleratorNetworkProfile, |
| this.additionalNodeNetworkConfigs, |
| this.additionalPodNetworkConfigs, |
| this.createPodRange, |
| this.enablePrivateNodes, |
| this.networkPerformanceConfig, |
| this.networkTierConfig, |
| this.podCidrOverprovisionConfig, |
| this.podIpv4CidrBlock, |
| this.podIpv4RangeUtilization, |
| this.podRange, |
| this.subnetwork, |
| }); |
| |
| NodeNetworkConfig.fromJson(core.Map json_) |
| : this( |
| acceleratorNetworkProfile: |
| json_['acceleratorNetworkProfile'] as core.String?, |
| additionalNodeNetworkConfigs: |
| (json_['additionalNodeNetworkConfigs'] as core.List?) |
| ?.map( |
| (value) => AdditionalNodeNetworkConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| additionalPodNetworkConfigs: |
| (json_['additionalPodNetworkConfigs'] as core.List?) |
| ?.map( |
| (value) => AdditionalPodNetworkConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| createPodRange: json_['createPodRange'] as core.bool?, |
| enablePrivateNodes: json_['enablePrivateNodes'] as core.bool?, |
| networkPerformanceConfig: json_.containsKey('networkPerformanceConfig') |
| ? NetworkPerformanceConfig.fromJson( |
| json_['networkPerformanceConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| networkTierConfig: json_.containsKey('networkTierConfig') |
| ? NetworkTierConfig.fromJson( |
| json_['networkTierConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| podCidrOverprovisionConfig: |
| json_.containsKey('podCidrOverprovisionConfig') |
| ? PodCIDROverprovisionConfig.fromJson( |
| json_['podCidrOverprovisionConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| podIpv4CidrBlock: json_['podIpv4CidrBlock'] as core.String?, |
| podIpv4RangeUtilization: (json_['podIpv4RangeUtilization'] as core.num?) |
| ?.toDouble(), |
| podRange: json_['podRange'] as core.String?, |
| subnetwork: json_['subnetwork'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final acceleratorNetworkProfile = this.acceleratorNetworkProfile; |
| final additionalNodeNetworkConfigs = this.additionalNodeNetworkConfigs; |
| final additionalPodNetworkConfigs = this.additionalPodNetworkConfigs; |
| final createPodRange = this.createPodRange; |
| final enablePrivateNodes = this.enablePrivateNodes; |
| final networkPerformanceConfig = this.networkPerformanceConfig; |
| final networkTierConfig = this.networkTierConfig; |
| final podCidrOverprovisionConfig = this.podCidrOverprovisionConfig; |
| final podIpv4CidrBlock = this.podIpv4CidrBlock; |
| final podIpv4RangeUtilization = this.podIpv4RangeUtilization; |
| final podRange = this.podRange; |
| final subnetwork = this.subnetwork; |
| return { |
| 'acceleratorNetworkProfile': ?acceleratorNetworkProfile, |
| 'additionalNodeNetworkConfigs': ?additionalNodeNetworkConfigs, |
| 'additionalPodNetworkConfigs': ?additionalPodNetworkConfigs, |
| 'createPodRange': ?createPodRange, |
| 'enablePrivateNodes': ?enablePrivateNodes, |
| 'networkPerformanceConfig': ?networkPerformanceConfig, |
| 'networkTierConfig': ?networkTierConfig, |
| 'podCidrOverprovisionConfig': ?podCidrOverprovisionConfig, |
| 'podIpv4CidrBlock': ?podIpv4CidrBlock, |
| 'podIpv4RangeUtilization': ?podIpv4RangeUtilization, |
| 'podRange': ?podRange, |
| 'subnetwork': ?subnetwork, |
| }; |
| } |
| } |
| |
| /// NodePool contains the name and configuration for a cluster's node pool. |
| /// |
| /// Node pools are a set of nodes (i.e. VM's), with a common configuration and |
| /// specification, under the control of the cluster master. They may have a set |
| /// of Kubernetes labels applied to them, which may be used to reference them |
| /// during pod scheduling. They may also be resized up or down, to accommodate |
| /// the workload. |
| class NodePool { |
| /// Specifies the autopilot configuration for this node pool. |
| /// |
| /// This field is exclusively reserved for Cluster Autoscaler. |
| AutopilotConfig? autopilotConfig; |
| |
| /// Autoscaler configuration for this NodePool. |
| /// |
| /// Autoscaler is enabled only if a valid configuration is present. |
| NodePoolAutoscaling? autoscaling; |
| |
| /// Enable best effort provisioning for nodes |
| BestEffortProvisioning? bestEffortProvisioning; |
| |
| /// Which conditions caused the current node pool state. |
| core.List<StatusCondition>? conditions; |
| |
| /// The node configuration of the pool. |
| NodeConfig? config; |
| |
| /// This checksum is computed by the server based on the value of node pool |
| /// fields, and may be sent on update requests to ensure the client has an |
| /// up-to-date value before proceeding. |
| core.String? etag; |
| |
| /// The initial node count for the pool. |
| /// |
| /// You must ensure that your Compute Engine |
| /// [resource quota](https://cloud.google.com/compute/quotas) is sufficient |
| /// for this number of instances. You must also have available firewall and |
| /// routes quota. |
| core.int? initialNodeCount; |
| |
| /// The resource URLs of the |
| /// [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) |
| /// associated with this node pool. |
| /// |
| /// During the node pool blue-green upgrade operation, the URLs contain both |
| /// blue and green resources. |
| /// |
| /// Output only. |
| core.List<core.String>? instanceGroupUrls; |
| |
| /// The list of Google Compute Engine |
| /// [zones](https://cloud.google.com/compute/docs/zones#available) in which |
| /// the NodePool's nodes should be located. |
| /// |
| /// If this value is unspecified during node pool creation, the |
| /// [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations) |
| /// value will be used, instead. Warning: changing node pool locations will |
| /// result in nodes being added and/or removed. |
| core.List<core.String>? locations; |
| |
| /// NodeManagement configuration for this NodePool. |
| NodeManagement? management; |
| |
| /// The constraint on the maximum number of pods that can be run |
| /// simultaneously on a node in the node pool. |
| MaxPodsConstraint? maxPodsConstraint; |
| |
| /// The name of the node pool. |
| core.String? name; |
| |
| /// Networking configuration for this NodePool. |
| /// |
| /// If specified, it overrides the cluster-level defaults. |
| NodeNetworkConfig? networkConfig; |
| |
| /// Specifies the node drain configuration for this node pool. |
| NodeDrainConfig? nodeDrainConfig; |
| |
| /// Specifies the node placement policy. |
| PlacementPolicy? placementPolicy; |
| |
| /// The pod CIDR block size per node in this node pool. |
| /// |
| /// Output only. |
| core.int? podIpv4CidrSize; |
| |
| /// Specifies the configuration of queued provisioning. |
| QueuedProvisioning? queuedProvisioning; |
| |
| /// Server-defined URL for the resource. |
| /// |
| /// Output only. |
| core.String? selfLink; |
| |
| /// The status of the nodes in this pool instance. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : Not set. |
| /// - "PROVISIONING" : The PROVISIONING state indicates the node pool is being |
| /// created. |
| /// - "RUNNING" : The RUNNING state indicates the node pool has been created |
| /// and is fully usable. |
| /// - "RUNNING_WITH_ERROR" : The RUNNING_WITH_ERROR state indicates the node |
| /// pool has been created and is partially usable. Some error state has |
| /// occurred and some functionality may be impaired. Customer may need to |
| /// reissue a request or trigger a new update. |
| /// - "RECONCILING" : The RECONCILING state indicates that some work is |
| /// actively being done on the node pool, such as upgrading node software. |
| /// Details can be found in the `statusMessage` field. |
| /// - "STOPPING" : The STOPPING state indicates the node pool is being |
| /// deleted. |
| /// - "ERROR" : The ERROR state indicates the node pool may be unusable. |
| /// Details can be found in the `statusMessage` field. |
| core.String? status; |
| |
| /// Use conditions instead. |
| /// |
| /// Additional information about the current status of this node pool |
| /// instance, if available. |
| /// |
| /// Output only. Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? statusMessage; |
| |
| /// Update info contains relevant information during a node pool update. |
| /// |
| /// Output only. |
| UpdateInfo? updateInfo; |
| |
| /// Upgrade settings control disruption and speed of the upgrade. |
| UpgradeSettings? upgradeSettings; |
| |
| /// The version of Kubernetes running on this NodePool's nodes. |
| /// |
| /// If unspecified, it defaults as described |
| /// [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version). |
| core.String? version; |
| |
| NodePool({ |
| this.autopilotConfig, |
| this.autoscaling, |
| this.bestEffortProvisioning, |
| this.conditions, |
| this.config, |
| this.etag, |
| this.initialNodeCount, |
| this.instanceGroupUrls, |
| this.locations, |
| this.management, |
| this.maxPodsConstraint, |
| this.name, |
| this.networkConfig, |
| this.nodeDrainConfig, |
| this.placementPolicy, |
| this.podIpv4CidrSize, |
| this.queuedProvisioning, |
| this.selfLink, |
| this.status, |
| this.statusMessage, |
| this.updateInfo, |
| this.upgradeSettings, |
| this.version, |
| }); |
| |
| NodePool.fromJson(core.Map json_) |
| : this( |
| autopilotConfig: json_.containsKey('autopilotConfig') |
| ? AutopilotConfig.fromJson( |
| json_['autopilotConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| autoscaling: json_.containsKey('autoscaling') |
| ? NodePoolAutoscaling.fromJson( |
| json_['autoscaling'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| bestEffortProvisioning: json_.containsKey('bestEffortProvisioning') |
| ? BestEffortProvisioning.fromJson( |
| json_['bestEffortProvisioning'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| conditions: (json_['conditions'] as core.List?) |
| ?.map( |
| (value) => StatusCondition.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| config: json_.containsKey('config') |
| ? NodeConfig.fromJson( |
| json_['config'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| etag: json_['etag'] as core.String?, |
| initialNodeCount: json_['initialNodeCount'] as core.int?, |
| instanceGroupUrls: (json_['instanceGroupUrls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| locations: (json_['locations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| management: json_.containsKey('management') |
| ? NodeManagement.fromJson( |
| json_['management'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| maxPodsConstraint: json_.containsKey('maxPodsConstraint') |
| ? MaxPodsConstraint.fromJson( |
| json_['maxPodsConstraint'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| name: json_['name'] as core.String?, |
| networkConfig: json_.containsKey('networkConfig') |
| ? NodeNetworkConfig.fromJson( |
| json_['networkConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodeDrainConfig: json_.containsKey('nodeDrainConfig') |
| ? NodeDrainConfig.fromJson( |
| json_['nodeDrainConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| placementPolicy: json_.containsKey('placementPolicy') |
| ? PlacementPolicy.fromJson( |
| json_['placementPolicy'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| podIpv4CidrSize: json_['podIpv4CidrSize'] as core.int?, |
| queuedProvisioning: json_.containsKey('queuedProvisioning') |
| ? QueuedProvisioning.fromJson( |
| json_['queuedProvisioning'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| selfLink: json_['selfLink'] as core.String?, |
| status: json_['status'] as core.String?, |
| statusMessage: json_['statusMessage'] as core.String?, |
| updateInfo: json_.containsKey('updateInfo') |
| ? UpdateInfo.fromJson( |
| json_['updateInfo'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| upgradeSettings: json_.containsKey('upgradeSettings') |
| ? UpgradeSettings.fromJson( |
| json_['upgradeSettings'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| version: json_['version'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autopilotConfig = this.autopilotConfig; |
| final autoscaling = this.autoscaling; |
| final bestEffortProvisioning = this.bestEffortProvisioning; |
| final conditions = this.conditions; |
| final config = this.config; |
| final etag = this.etag; |
| final initialNodeCount = this.initialNodeCount; |
| final instanceGroupUrls = this.instanceGroupUrls; |
| final locations = this.locations; |
| final management = this.management; |
| final maxPodsConstraint = this.maxPodsConstraint; |
| final name = this.name; |
| final networkConfig = this.networkConfig; |
| final nodeDrainConfig = this.nodeDrainConfig; |
| final placementPolicy = this.placementPolicy; |
| final podIpv4CidrSize = this.podIpv4CidrSize; |
| final queuedProvisioning = this.queuedProvisioning; |
| final selfLink = this.selfLink; |
| final status = this.status; |
| final statusMessage = this.statusMessage; |
| final updateInfo = this.updateInfo; |
| final upgradeSettings = this.upgradeSettings; |
| final version = this.version; |
| return { |
| 'autopilotConfig': ?autopilotConfig, |
| 'autoscaling': ?autoscaling, |
| 'bestEffortProvisioning': ?bestEffortProvisioning, |
| 'conditions': ?conditions, |
| 'config': ?config, |
| 'etag': ?etag, |
| 'initialNodeCount': ?initialNodeCount, |
| 'instanceGroupUrls': ?instanceGroupUrls, |
| 'locations': ?locations, |
| 'management': ?management, |
| 'maxPodsConstraint': ?maxPodsConstraint, |
| 'name': ?name, |
| 'networkConfig': ?networkConfig, |
| 'nodeDrainConfig': ?nodeDrainConfig, |
| 'placementPolicy': ?placementPolicy, |
| 'podIpv4CidrSize': ?podIpv4CidrSize, |
| 'queuedProvisioning': ?queuedProvisioning, |
| 'selfLink': ?selfLink, |
| 'status': ?status, |
| 'statusMessage': ?statusMessage, |
| 'updateInfo': ?updateInfo, |
| 'upgradeSettings': ?upgradeSettings, |
| 'version': ?version, |
| }; |
| } |
| } |
| |
| /// Node pool configs that apply to all auto-provisioned node pools in autopilot |
| /// clusters and node auto-provisioning enabled clusters. |
| class NodePoolAutoConfig { |
| /// Configuration options for Linux nodes. |
| /// |
| /// Output only. |
| LinuxNodeConfig? linuxNodeConfig; |
| |
| /// The list of instance tags applied to all nodes. |
| /// |
| /// Tags are used to identify valid sources or targets for network firewalls |
| /// and are specified by the client during cluster creation. Each tag within |
| /// the list must comply with RFC1035. |
| NetworkTags? networkTags; |
| |
| /// NodeKubeletConfig controls the defaults for autoprovisioned node-pools. |
| /// |
| /// Currently only `insecure_kubelet_readonly_port_enabled` can be set here. |
| NodeKubeletConfig? nodeKubeletConfig; |
| |
| /// Resource manager tag keys and values to be attached to the nodes for |
| /// managing Compute Engine firewalls using Network Firewall Policies. |
| ResourceManagerTags? resourceManagerTags; |
| |
| NodePoolAutoConfig({ |
| this.linuxNodeConfig, |
| this.networkTags, |
| this.nodeKubeletConfig, |
| this.resourceManagerTags, |
| }); |
| |
| NodePoolAutoConfig.fromJson(core.Map json_) |
| : this( |
| linuxNodeConfig: json_.containsKey('linuxNodeConfig') |
| ? LinuxNodeConfig.fromJson( |
| json_['linuxNodeConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| networkTags: json_.containsKey('networkTags') |
| ? NetworkTags.fromJson( |
| json_['networkTags'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodeKubeletConfig: json_.containsKey('nodeKubeletConfig') |
| ? NodeKubeletConfig.fromJson( |
| json_['nodeKubeletConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| resourceManagerTags: json_.containsKey('resourceManagerTags') |
| ? ResourceManagerTags.fromJson( |
| json_['resourceManagerTags'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final linuxNodeConfig = this.linuxNodeConfig; |
| final networkTags = this.networkTags; |
| final nodeKubeletConfig = this.nodeKubeletConfig; |
| final resourceManagerTags = this.resourceManagerTags; |
| return { |
| 'linuxNodeConfig': ?linuxNodeConfig, |
| 'networkTags': ?networkTags, |
| 'nodeKubeletConfig': ?nodeKubeletConfig, |
| 'resourceManagerTags': ?resourceManagerTags, |
| }; |
| } |
| } |
| |
| /// NodePoolAutoscaling contains information required by cluster autoscaler to |
| /// adjust the size of the node pool to the current cluster usage. |
| class NodePoolAutoscaling { |
| /// Can this node pool be deleted automatically. |
| core.bool? autoprovisioned; |
| |
| /// Is autoscaling enabled for this node pool. |
| core.bool? enabled; |
| |
| /// Location policy used when scaling up a node pool. |
| /// Possible string values are: |
| /// - "LOCATION_POLICY_UNSPECIFIED" : Not set. |
| /// - "BALANCED" : BALANCED is a best effort policy that aims to balance the |
| /// sizes of different zones. |
| /// - "ANY" : ANY policy picks zones that have the highest capacity available. |
| core.String? locationPolicy; |
| |
| /// Maximum number of nodes for one location in the node pool. |
| /// |
| /// Must be \>= min_node_count. There has to be enough quota to scale up the |
| /// cluster. |
| core.int? maxNodeCount; |
| |
| /// Minimum number of nodes for one location in the node pool. |
| /// |
| /// Must be greater than or equal to 0 and less than or equal to |
| /// max_node_count. |
| core.int? minNodeCount; |
| |
| /// Maximum number of nodes in the node pool. |
| /// |
| /// Must be greater than or equal to total_min_node_count. There has to be |
| /// enough quota to scale up the cluster. The total_*_node_count fields are |
| /// mutually exclusive with the *_node_count fields. |
| core.int? totalMaxNodeCount; |
| |
| /// Minimum number of nodes in the node pool. |
| /// |
| /// Must be greater than or equal to 0 and less than or equal to |
| /// total_max_node_count. The total_*_node_count fields are mutually exclusive |
| /// with the *_node_count fields. |
| core.int? totalMinNodeCount; |
| |
| NodePoolAutoscaling({ |
| this.autoprovisioned, |
| this.enabled, |
| this.locationPolicy, |
| this.maxNodeCount, |
| this.minNodeCount, |
| this.totalMaxNodeCount, |
| this.totalMinNodeCount, |
| }); |
| |
| NodePoolAutoscaling.fromJson(core.Map json_) |
| : this( |
| autoprovisioned: json_['autoprovisioned'] as core.bool?, |
| enabled: json_['enabled'] as core.bool?, |
| locationPolicy: json_['locationPolicy'] as core.String?, |
| maxNodeCount: json_['maxNodeCount'] as core.int?, |
| minNodeCount: json_['minNodeCount'] as core.int?, |
| totalMaxNodeCount: json_['totalMaxNodeCount'] as core.int?, |
| totalMinNodeCount: json_['totalMinNodeCount'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autoprovisioned = this.autoprovisioned; |
| final enabled = this.enabled; |
| final locationPolicy = this.locationPolicy; |
| final maxNodeCount = this.maxNodeCount; |
| final minNodeCount = this.minNodeCount; |
| final totalMaxNodeCount = this.totalMaxNodeCount; |
| final totalMinNodeCount = this.totalMinNodeCount; |
| return { |
| 'autoprovisioned': ?autoprovisioned, |
| 'enabled': ?enabled, |
| 'locationPolicy': ?locationPolicy, |
| 'maxNodeCount': ?maxNodeCount, |
| 'minNodeCount': ?minNodeCount, |
| 'totalMaxNodeCount': ?totalMaxNodeCount, |
| 'totalMinNodeCount': ?totalMinNodeCount, |
| }; |
| } |
| } |
| |
| /// Subset of Nodepool message that has defaults. |
| class NodePoolDefaults { |
| /// Subset of NodeConfig message that has defaults. |
| NodeConfigDefaults? nodeConfigDefaults; |
| |
| NodePoolDefaults({this.nodeConfigDefaults}); |
| |
| NodePoolDefaults.fromJson(core.Map json_) |
| : this( |
| nodeConfigDefaults: json_.containsKey('nodeConfigDefaults') |
| ? NodeConfigDefaults.fromJson( |
| json_['nodeConfigDefaults'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final nodeConfigDefaults = this.nodeConfigDefaults; |
| return {'nodeConfigDefaults': ?nodeConfigDefaults}; |
| } |
| } |
| |
| /// NodePoolLoggingConfig specifies logging configuration for node pools. |
| class NodePoolLoggingConfig { |
| /// Logging variant configuration. |
| LoggingVariantConfig? variantConfig; |
| |
| NodePoolLoggingConfig({this.variantConfig}); |
| |
| NodePoolLoggingConfig.fromJson(core.Map json_) |
| : this( |
| variantConfig: json_.containsKey('variantConfig') |
| ? LoggingVariantConfig.fromJson( |
| json_['variantConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final variantConfig = this.variantConfig; |
| return {'variantConfig': ?variantConfig}; |
| } |
| } |
| |
| /// NodePoolUpgradeInfo contains the upgrade information of a node pool. |
| class NodePoolUpgradeInfo { |
| /// The auto upgrade status. |
| core.List<core.String>? autoUpgradeStatus; |
| |
| /// The node pool's current minor version's end of extended support timestamp. |
| core.String? endOfExtendedSupportTimestamp; |
| |
| /// The node pool's current minor version's end of standard support timestamp. |
| core.String? endOfStandardSupportTimestamp; |
| |
| /// minor_target_version indicates the target version for minor upgrade. |
| core.String? minorTargetVersion; |
| |
| /// patch_target_version indicates the target version for patch upgrade. |
| core.String? patchTargetVersion; |
| |
| /// The auto upgrade paused reason. |
| core.List<core.String>? pausedReason; |
| |
| /// The list of past auto upgrades. |
| core.List<UpgradeDetails>? upgradeDetails; |
| |
| NodePoolUpgradeInfo({ |
| this.autoUpgradeStatus, |
| this.endOfExtendedSupportTimestamp, |
| this.endOfStandardSupportTimestamp, |
| this.minorTargetVersion, |
| this.patchTargetVersion, |
| this.pausedReason, |
| this.upgradeDetails, |
| }); |
| |
| NodePoolUpgradeInfo.fromJson(core.Map json_) |
| : this( |
| autoUpgradeStatus: (json_['autoUpgradeStatus'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| endOfExtendedSupportTimestamp: |
| json_['endOfExtendedSupportTimestamp'] as core.String?, |
| endOfStandardSupportTimestamp: |
| json_['endOfStandardSupportTimestamp'] as core.String?, |
| minorTargetVersion: json_['minorTargetVersion'] as core.String?, |
| patchTargetVersion: json_['patchTargetVersion'] as core.String?, |
| pausedReason: (json_['pausedReason'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| upgradeDetails: (json_['upgradeDetails'] as core.List?) |
| ?.map( |
| (value) => UpgradeDetails.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autoUpgradeStatus = this.autoUpgradeStatus; |
| final endOfExtendedSupportTimestamp = this.endOfExtendedSupportTimestamp; |
| final endOfStandardSupportTimestamp = this.endOfStandardSupportTimestamp; |
| final minorTargetVersion = this.minorTargetVersion; |
| final patchTargetVersion = this.patchTargetVersion; |
| final pausedReason = this.pausedReason; |
| final upgradeDetails = this.upgradeDetails; |
| return { |
| 'autoUpgradeStatus': ?autoUpgradeStatus, |
| 'endOfExtendedSupportTimestamp': ?endOfExtendedSupportTimestamp, |
| 'endOfStandardSupportTimestamp': ?endOfStandardSupportTimestamp, |
| 'minorTargetVersion': ?minorTargetVersion, |
| 'patchTargetVersion': ?patchTargetVersion, |
| 'pausedReason': ?pausedReason, |
| 'upgradeDetails': ?upgradeDetails, |
| }; |
| } |
| } |
| |
| /// Kubernetes taint is composed of three fields: key, value, and effect. |
| /// |
| /// Effect can only be one of three types: NoSchedule, PreferNoSchedule or |
| /// NoExecute. See |
| /// [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) |
| /// for more information, including usage and the valid values. |
| class NodeTaint { |
| /// Effect for taint. |
| /// Possible string values are: |
| /// - "EFFECT_UNSPECIFIED" : Not set |
| /// - "NO_SCHEDULE" : NoSchedule |
| /// - "PREFER_NO_SCHEDULE" : PreferNoSchedule |
| /// - "NO_EXECUTE" : NoExecute |
| core.String? effect; |
| |
| /// Key for taint. |
| core.String? key; |
| |
| /// Value for taint. |
| core.String? value; |
| |
| NodeTaint({this.effect, this.key, this.value}); |
| |
| NodeTaint.fromJson(core.Map json_) |
| : this( |
| effect: json_['effect'] as core.String?, |
| key: json_['key'] as core.String?, |
| value: json_['value'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final effect = this.effect; |
| final key = this.key; |
| final value = this.value; |
| return {'effect': ?effect, 'key': ?key, 'value': ?value}; |
| } |
| } |
| |
| /// Collection of Kubernetes |
| /// [node taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration). |
| class NodeTaints { |
| /// List of node taints. |
| core.List<NodeTaint>? taints; |
| |
| NodeTaints({this.taints}); |
| |
| NodeTaints.fromJson(core.Map json_) |
| : this( |
| taints: (json_['taints'] as core.List?) |
| ?.map( |
| (value) => NodeTaint.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final taints = this.taints; |
| return {'taints': ?taints}; |
| } |
| } |
| |
| /// NotificationConfig is the configuration of notifications. |
| class NotificationConfig { |
| /// Notification config for Pub/Sub. |
| PubSub? pubsub; |
| |
| NotificationConfig({this.pubsub}); |
| |
| NotificationConfig.fromJson(core.Map json_) |
| : this( |
| pubsub: json_.containsKey('pubsub') |
| ? PubSub.fromJson( |
| json_['pubsub'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final pubsub = this.pubsub; |
| return {'pubsub': ?pubsub}; |
| } |
| } |
| |
| /// This operation resource represents operations that may have happened or are |
| /// happening on the cluster. |
| /// |
| /// All fields are output only. |
| class Operation { |
| /// Which conditions caused the current cluster state. |
| /// |
| /// Deprecated. Use field error instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.List<StatusCondition>? clusterConditions; |
| |
| /// Detailed operation progress, if available. |
| /// |
| /// Output only. |
| core.String? detail; |
| |
| /// The time the operation completed, in |
| /// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| /// |
| /// Output only. |
| core.String? endTime; |
| |
| /// The error result of the operation in case of failure. |
| Status? error; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) |
| /// or |
| /// [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) |
| /// in which the cluster resides. |
| /// |
| /// Output only. |
| core.String? location; |
| |
| /// The server-assigned ID for the operation. |
| /// |
| /// Output only. |
| core.String? name; |
| |
| /// Which conditions caused the current node pool state. |
| /// |
| /// Deprecated. Use field error instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.List<StatusCondition>? nodepoolConditions; |
| |
| /// The operation type. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "TYPE_UNSPECIFIED" : Not set. |
| /// - "CREATE_CLUSTER" : The cluster is being created. The cluster should be |
| /// assumed to be unusable until the operation finishes. In the event of the |
| /// operation failing, the cluster will enter the ERROR state and eventually |
| /// be deleted. |
| /// - "DELETE_CLUSTER" : The cluster is being deleted. The cluster should be |
| /// assumed to be unusable as soon as this operation starts. In the event of |
| /// the operation failing, the cluster will enter the ERROR state and the |
| /// deletion will be automatically retried until completed. |
| /// - "UPGRADE_MASTER" : The cluster version is being updated. Note that this |
| /// includes "upgrades" to the same version, which are simply a recreation. |
| /// This also includes |
| /// \[auto-upgrades\](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-upgrades#upgrading_automatically). |
| /// For more details, see |
| /// [documentation on cluster upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-upgrades#cluster_upgrades). |
| /// - "UPGRADE_NODES" : A node pool is being updated. Despite calling this an |
| /// "upgrade", this includes most forms of updates to node pools. This also |
| /// includes |
| /// \[auto-upgrades\](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-upgrades). |
| /// This operation sets the progress field and may be canceled. The upgrade |
| /// strategy depends on |
| /// [node pool configuration](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pool-upgrade-strategies). |
| /// The nodes are generally still usable during this operation. |
| /// - "REPAIR_CLUSTER" : A problem has been detected with the control plane |
| /// and is being repaired. This operation type is initiated by GKE. For more |
| /// details, see |
| /// [documentation on repairs](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions#repairs). |
| /// - "UPDATE_CLUSTER" : The cluster is being updated. This is a broad |
| /// category of operations and includes operations that only change metadata |
| /// as well as those that must recreate the entire cluster. If the control |
| /// plane must be recreated, this will cause temporary downtime for zonal |
| /// clusters. Some features require recreating the nodes as well. Those will |
| /// be recreated as separate operations and the update may not be completely |
| /// functional until the node pools recreations finish. Node recreations will |
| /// generally follow |
| /// [maintenance policies](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions). |
| /// Some GKE-initiated operations use this type. This includes certain types |
| /// of auto-upgrades and incident mitigations. |
| /// - "CREATE_NODE_POOL" : A node pool is being created. The node pool should |
| /// be assumed to be unusable until this operation finishes. In the event of |
| /// an error, the node pool may be partially created. If enabled, |
| /// [node autoprovisioning](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning) |
| /// may have automatically initiated such operations. |
| /// - "DELETE_NODE_POOL" : The node pool is being deleted. The node pool |
| /// should be assumed to be unusable as soon as this operation starts. |
| /// - "SET_NODE_POOL_MANAGEMENT" : The node pool's manamagent field is being |
| /// updated. These operations only update metadata and may be concurrent with |
| /// most other operations. |
| /// - "AUTO_REPAIR_NODES" : A problem has been detected with nodes and |
| /// [they are being repaired](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair). |
| /// This operation type is initiated by GKE, typically automatically. This |
| /// operation may be concurrent with other operations and there may be |
| /// multiple repairs occurring on the same node pool. |
| /// - "AUTO_UPGRADE_NODES" : Unused. Automatic node upgrade uses |
| /// UPGRADE_NODES. |
| /// - "SET_LABELS" : Unused. Updating labels uses UPDATE_CLUSTER. |
| /// - "SET_MASTER_AUTH" : Unused. Updating master auth uses UPDATE_CLUSTER. |
| /// - "SET_NODE_POOL_SIZE" : The node pool is being resized. With the |
| /// exception of resizing to or from size zero, the node pool is generally |
| /// usable during this operation. |
| /// - "SET_NETWORK_POLICY" : Unused. Updating network policy uses |
| /// UPDATE_CLUSTER. |
| /// - "SET_MAINTENANCE_POLICY" : Unused. Updating maintenance policy uses |
| /// UPDATE_CLUSTER. |
| /// - "RESIZE_CLUSTER" : The control plane is being resized. This operation |
| /// type is initiated by GKE. These operations are often performed |
| /// preemptively to ensure that the control plane has sufficient resources and |
| /// is not typically an indication of issues. For more details, see |
| /// [documentation on resizes](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions#repairs). |
| /// - "FLEET_FEATURE_UPGRADE" : Fleet features of GKE Enterprise are being |
| /// upgraded. The cluster should be assumed to be blocked for other upgrades |
| /// until the operation finishes. |
| core.String? operationType; |
| |
| /// Progress information for an operation. |
| /// |
| /// Output only. |
| OperationProgress? progress; |
| |
| /// Server-defined URI for the operation. |
| /// |
| /// Example: |
| /// `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`. |
| /// |
| /// Output only. |
| core.String? selfLink; |
| |
| /// The time the operation started, in |
| /// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| /// |
| /// Output only. |
| core.String? startTime; |
| |
| /// The current status of the operation. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : Not set. |
| /// - "PENDING" : The operation has been created. |
| /// - "RUNNING" : The operation is currently running. |
| /// - "DONE" : The operation is done, either cancelled or completed. |
| /// - "ABORTING" : The operation is aborting. |
| core.String? status; |
| |
| /// If an error has occurred, a textual description of the error. |
| /// |
| /// Deprecated. Use the field error instead. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? statusMessage; |
| |
| /// Server-defined URI for the target of the operation. |
| /// |
| /// The format of this is a URI to the resource being modified (such as a |
| /// cluster, node pool, or node). For node pool repairs, there may be multiple |
| /// nodes being repaired, but only one will be the target. Examples: - ## |
| /// `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` |
| /// ## |
| /// `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` |
| /// `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node` |
| /// |
| /// Output only. |
| core.String? targetLink; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// operation is taking place. |
| /// |
| /// This field is deprecated, use location instead. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| Operation({ |
| this.clusterConditions, |
| this.detail, |
| this.endTime, |
| this.error, |
| this.location, |
| this.name, |
| this.nodepoolConditions, |
| this.operationType, |
| this.progress, |
| this.selfLink, |
| this.startTime, |
| this.status, |
| this.statusMessage, |
| this.targetLink, |
| this.zone, |
| }); |
| |
| Operation.fromJson(core.Map json_) |
| : this( |
| clusterConditions: (json_['clusterConditions'] as core.List?) |
| ?.map( |
| (value) => StatusCondition.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| detail: json_['detail'] as core.String?, |
| endTime: json_['endTime'] as core.String?, |
| error: json_.containsKey('error') |
| ? Status.fromJson( |
| json_['error'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| location: json_['location'] as core.String?, |
| name: json_['name'] as core.String?, |
| nodepoolConditions: (json_['nodepoolConditions'] as core.List?) |
| ?.map( |
| (value) => StatusCondition.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| operationType: json_['operationType'] as core.String?, |
| progress: json_.containsKey('progress') |
| ? OperationProgress.fromJson( |
| json_['progress'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| selfLink: json_['selfLink'] as core.String?, |
| startTime: json_['startTime'] as core.String?, |
| status: json_['status'] as core.String?, |
| statusMessage: json_['statusMessage'] as core.String?, |
| targetLink: json_['targetLink'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterConditions = this.clusterConditions; |
| final detail = this.detail; |
| final endTime = this.endTime; |
| final error = this.error; |
| final location = this.location; |
| final name = this.name; |
| final nodepoolConditions = this.nodepoolConditions; |
| final operationType = this.operationType; |
| final progress = this.progress; |
| final selfLink = this.selfLink; |
| final startTime = this.startTime; |
| final status = this.status; |
| final statusMessage = this.statusMessage; |
| final targetLink = this.targetLink; |
| final zone = this.zone; |
| return { |
| 'clusterConditions': ?clusterConditions, |
| 'detail': ?detail, |
| 'endTime': ?endTime, |
| 'error': ?error, |
| 'location': ?location, |
| 'name': ?name, |
| 'nodepoolConditions': ?nodepoolConditions, |
| 'operationType': ?operationType, |
| 'progress': ?progress, |
| 'selfLink': ?selfLink, |
| 'startTime': ?startTime, |
| 'status': ?status, |
| 'statusMessage': ?statusMessage, |
| 'targetLink': ?targetLink, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// OperationError records errors seen from CloudKMS keys encountered during |
| /// updates to DatabaseEncryption configuration. |
| class OperationError { |
| /// Description of the error seen during the operation. |
| core.String? errorMessage; |
| |
| /// CloudKMS key resource that had the error. |
| core.String? keyName; |
| |
| /// Time when the CloudKMS error was seen. |
| core.String? timestamp; |
| |
| OperationError({this.errorMessage, this.keyName, this.timestamp}); |
| |
| OperationError.fromJson(core.Map json_) |
| : this( |
| errorMessage: json_['errorMessage'] as core.String?, |
| keyName: json_['keyName'] as core.String?, |
| timestamp: json_['timestamp'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final errorMessage = this.errorMessage; |
| final keyName = this.keyName; |
| final timestamp = this.timestamp; |
| return { |
| 'errorMessage': ?errorMessage, |
| 'keyName': ?keyName, |
| 'timestamp': ?timestamp, |
| }; |
| } |
| } |
| |
| /// Information about operation (or operation stage) progress. |
| class OperationProgress { |
| /// Progress metric bundle, for example: metrics: \[{name: "nodes done", |
| /// int_value: 15}, {name: "nodes total", int_value: 32}\] or metrics: |
| /// \[{name: "progress", double_value: 0.56}, {name: "progress scale", |
| /// double_value: 1.0}\] |
| core.List<Metric>? metrics; |
| |
| /// A non-parameterized string describing an operation stage. |
| /// |
| /// Unset for single-stage operations. |
| core.String? name; |
| |
| /// Substages of an operation or a stage. |
| core.List<OperationProgress>? stages; |
| |
| /// Status of an operation stage. |
| /// |
| /// Unset for single-stage operations. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : Not set. |
| /// - "PENDING" : The operation has been created. |
| /// - "RUNNING" : The operation is currently running. |
| /// - "DONE" : The operation is done, either cancelled or completed. |
| /// - "ABORTING" : The operation is aborting. |
| core.String? status; |
| |
| OperationProgress({this.metrics, this.name, this.stages, this.status}); |
| |
| OperationProgress.fromJson(core.Map json_) |
| : this( |
| metrics: (json_['metrics'] as core.List?) |
| ?.map( |
| (value) => |
| Metric.fromJson(value as core.Map<core.String, core.dynamic>), |
| ) |
| .toList(), |
| name: json_['name'] as core.String?, |
| stages: (json_['stages'] as core.List?) |
| ?.map( |
| (value) => OperationProgress.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| status: json_['status'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final metrics = this.metrics; |
| final name = this.name; |
| final stages = this.stages; |
| final status = this.status; |
| return { |
| 'metrics': ?metrics, |
| 'name': ?name, |
| 'stages': ?stages, |
| 'status': ?status, |
| }; |
| } |
| } |
| |
| /// Configuration for the Cloud Storage Parallelstore CSI driver. |
| class ParallelstoreCsiDriverConfig { |
| /// Whether the Cloud Storage Parallelstore CSI driver is enabled for this |
| /// cluster. |
| core.bool? enabled; |
| |
| ParallelstoreCsiDriverConfig({this.enabled}); |
| |
| ParallelstoreCsiDriverConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// ParentProductConfig is the configuration of the parent product of the |
| /// cluster. |
| /// |
| /// This field is used by Google internal products that are built on top of a |
| /// GKE cluster and take the ownership of the cluster. |
| class ParentProductConfig { |
| /// Labels contain the configuration of the parent product. |
| core.Map<core.String, core.String>? labels; |
| |
| /// Name of the parent product associated with the cluster. |
| core.String? productName; |
| |
| ParentProductConfig({this.labels, this.productName}); |
| |
| ParentProductConfig.fromJson(core.Map json_) |
| : this( |
| labels: (json_['labels'] as core.Map<core.String, core.dynamic>?)?.map( |
| (key, value) => core.MapEntry(key, value as core.String), |
| ), |
| productName: json_['productName'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final labels = this.labels; |
| final productName = this.productName; |
| return {'labels': ?labels, 'productName': ?productName}; |
| } |
| } |
| |
| /// PlacementPolicy defines the placement policy used by the node pool. |
| class PlacementPolicy { |
| /// If set, refers to the name of a custom resource policy supplied by the |
| /// user. |
| /// |
| /// The resource policy must be in the same project and region as the node |
| /// pool. If not found, InvalidArgument error is returned. |
| core.String? policyName; |
| |
| /// TPU placement topology for pod slice node pool. |
| /// |
| /// https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies |
| /// |
| /// Optional. |
| core.String? tpuTopology; |
| |
| /// The type of placement. |
| /// Possible string values are: |
| /// - "TYPE_UNSPECIFIED" : TYPE_UNSPECIFIED specifies no requirements on nodes |
| /// placement. |
| /// - "COMPACT" : COMPACT specifies node placement in the same availability |
| /// domain to ensure low communication latency. |
| core.String? type; |
| |
| PlacementPolicy({this.policyName, this.tpuTopology, this.type}); |
| |
| PlacementPolicy.fromJson(core.Map json_) |
| : this( |
| policyName: json_['policyName'] as core.String?, |
| tpuTopology: json_['tpuTopology'] as core.String?, |
| type: json_['type'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final policyName = this.policyName; |
| final tpuTopology = this.tpuTopology; |
| final type = this.type; |
| return { |
| 'policyName': ?policyName, |
| 'tpuTopology': ?tpuTopology, |
| 'type': ?type, |
| }; |
| } |
| } |
| |
| /// PodAutoscaling is used for configuration of parameters for workload |
| /// autoscaling. |
| class PodAutoscaling { |
| /// Selected Horizontal Pod Autoscaling profile. |
| /// Possible string values are: |
| /// - "HPA_PROFILE_UNSPECIFIED" : HPA_PROFILE_UNSPECIFIED is used when no |
| /// custom HPA profile is set. |
| /// - "NONE" : Customers explicitly opt-out of HPA profiles. |
| /// - "PERFORMANCE" : PERFORMANCE is used when customers opt-in to the |
| /// performance HPA profile. In this profile we support a higher number of |
| /// HPAs per cluster and faster metrics collection for workload autoscaling. |
| core.String? hpaProfile; |
| |
| PodAutoscaling({this.hpaProfile}); |
| |
| PodAutoscaling.fromJson(core.Map json_) |
| : this(hpaProfile: json_['hpaProfile'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final hpaProfile = this.hpaProfile; |
| return {'hpaProfile': ?hpaProfile}; |
| } |
| } |
| |
| /// \[PRIVATE FIELD\] Config for pod CIDR size overprovisioning. |
| class PodCIDROverprovisionConfig { |
| /// Whether Pod CIDR overprovisioning is disabled. |
| /// |
| /// Note: Pod CIDR overprovisioning is enabled by default. |
| core.bool? disable; |
| |
| PodCIDROverprovisionConfig({this.disable}); |
| |
| PodCIDROverprovisionConfig.fromJson(core.Map json_) |
| : this(disable: json_['disable'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final disable = this.disable; |
| return {'disable': ?disable}; |
| } |
| } |
| |
| /// PodSnapshotConfig is the configuration for GKE Pod Snapshots feature. |
| class PodSnapshotConfig { |
| /// Whether or not the Pod Snapshots feature is enabled. |
| core.bool? enabled; |
| |
| PodSnapshotConfig({this.enabled}); |
| |
| PodSnapshotConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration options for private clusters. |
| class PrivateClusterConfig { |
| /// Whether the master's internal IP address is used as the cluster endpoint. |
| /// |
| /// Deprecated: Use |
| /// ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint |
| /// instead. Note that the value of enable_public_endpoint is reversed: if |
| /// enable_private_endpoint is false, then enable_public_endpoint will be |
| /// true. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.bool? enablePrivateEndpoint; |
| |
| /// Whether nodes have internal IP addresses only. |
| /// |
| /// If enabled, all nodes are given only RFC 1918 private addresses and |
| /// communicate with the master via private networking. Deprecated: Use |
| /// NetworkConfig.default_enable_private_nodes instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.bool? enablePrivateNodes; |
| |
| /// Controls master global access settings. |
| /// |
| /// Deprecated: Use |
| /// ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_global_access |
| /// instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| PrivateClusterMasterGlobalAccessConfig? masterGlobalAccessConfig; |
| |
| /// The IP range in CIDR notation to use for the hosted master network. |
| /// |
| /// This range will be used for assigning internal IP addresses to the master |
| /// or set of masters, as well as the ILB VIP. This range must not overlap |
| /// with any other ranges in use within the cluster's network. |
| core.String? masterIpv4CidrBlock; |
| |
| /// The peering name in the customer VPC used by this cluster. |
| /// |
| /// Output only. |
| core.String? peeringName; |
| |
| /// The internal IP address of this cluster's master endpoint. |
| /// |
| /// Deprecated: Use |
| /// ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint instead. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? privateEndpoint; |
| |
| /// Subnet to provision the master's private endpoint during cluster creation. |
| /// |
| /// Specified in projects / * /regions / * /subnetworks / * format. |
| /// Deprecated: Use |
| /// ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork |
| /// instead. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? privateEndpointSubnetwork; |
| |
| /// The external IP address of this cluster's master endpoint. |
| /// |
| /// Deprecated:Use |
| /// ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint instead. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? publicEndpoint; |
| |
| PrivateClusterConfig({ |
| this.enablePrivateEndpoint, |
| this.enablePrivateNodes, |
| this.masterGlobalAccessConfig, |
| this.masterIpv4CidrBlock, |
| this.peeringName, |
| this.privateEndpoint, |
| this.privateEndpointSubnetwork, |
| this.publicEndpoint, |
| }); |
| |
| PrivateClusterConfig.fromJson(core.Map json_) |
| : this( |
| enablePrivateEndpoint: json_['enablePrivateEndpoint'] as core.bool?, |
| enablePrivateNodes: json_['enablePrivateNodes'] as core.bool?, |
| masterGlobalAccessConfig: json_.containsKey('masterGlobalAccessConfig') |
| ? PrivateClusterMasterGlobalAccessConfig.fromJson( |
| json_['masterGlobalAccessConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| masterIpv4CidrBlock: json_['masterIpv4CidrBlock'] as core.String?, |
| peeringName: json_['peeringName'] as core.String?, |
| privateEndpoint: json_['privateEndpoint'] as core.String?, |
| privateEndpointSubnetwork: |
| json_['privateEndpointSubnetwork'] as core.String?, |
| publicEndpoint: json_['publicEndpoint'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enablePrivateEndpoint = this.enablePrivateEndpoint; |
| final enablePrivateNodes = this.enablePrivateNodes; |
| final masterGlobalAccessConfig = this.masterGlobalAccessConfig; |
| final masterIpv4CidrBlock = this.masterIpv4CidrBlock; |
| final peeringName = this.peeringName; |
| final privateEndpoint = this.privateEndpoint; |
| final privateEndpointSubnetwork = this.privateEndpointSubnetwork; |
| final publicEndpoint = this.publicEndpoint; |
| return { |
| 'enablePrivateEndpoint': ?enablePrivateEndpoint, |
| 'enablePrivateNodes': ?enablePrivateNodes, |
| 'masterGlobalAccessConfig': ?masterGlobalAccessConfig, |
| 'masterIpv4CidrBlock': ?masterIpv4CidrBlock, |
| 'peeringName': ?peeringName, |
| 'privateEndpoint': ?privateEndpoint, |
| 'privateEndpointSubnetwork': ?privateEndpointSubnetwork, |
| 'publicEndpoint': ?publicEndpoint, |
| }; |
| } |
| } |
| |
| /// Configuration for controlling master global access settings. |
| class PrivateClusterMasterGlobalAccessConfig { |
| /// Whenever master is accessible globally or not. |
| core.bool? enabled; |
| |
| PrivateClusterMasterGlobalAccessConfig({this.enabled}); |
| |
| PrivateClusterMasterGlobalAccessConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// PrivateRegistryAccessConfig contains access configuration for private |
| /// container registries. |
| class PrivateRegistryAccessConfig { |
| /// Private registry access configuration. |
| core.List<CertificateAuthorityDomainConfig>? certificateAuthorityDomainConfig; |
| |
| /// Private registry access is enabled. |
| core.bool? enabled; |
| |
| PrivateRegistryAccessConfig({ |
| this.certificateAuthorityDomainConfig, |
| this.enabled, |
| }); |
| |
| PrivateRegistryAccessConfig.fromJson(core.Map json_) |
| : this( |
| certificateAuthorityDomainConfig: |
| (json_['certificateAuthorityDomainConfig'] as core.List?) |
| ?.map( |
| (value) => CertificateAuthorityDomainConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| enabled: json_['enabled'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final certificateAuthorityDomainConfig = |
| this.certificateAuthorityDomainConfig; |
| final enabled = this.enabled; |
| return { |
| 'certificateAuthorityDomainConfig': ?certificateAuthorityDomainConfig, |
| 'enabled': ?enabled, |
| }; |
| } |
| } |
| |
| /// PrivilegedAdmissionConfig stores the list of authorized allowlist paths for |
| /// the cluster. |
| class PrivilegedAdmissionConfig { |
| /// The customer allowlist Cloud Storage paths for the cluster. |
| /// |
| /// These paths are used with the `--autopilot-privileged-admission` flag to |
| /// authorize privileged workloads in Autopilot clusters. Paths can be |
| /// GKE-owned, in the format `gke:////`, or customer-owned, in the format |
| /// `gs:///`. Wildcards (`*`) are supported to authorize all allowlists under |
| /// specific paths or directories. Example: `gs://my-bucket / * ` will |
| /// authorize all allowlists under the `my-bucket` bucket. |
| core.List<core.String>? allowlistPaths; |
| |
| PrivilegedAdmissionConfig({this.allowlistPaths}); |
| |
| PrivilegedAdmissionConfig.fromJson(core.Map json_) |
| : this( |
| allowlistPaths: (json_['allowlistPaths'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final allowlistPaths = this.allowlistPaths; |
| return {'allowlistPaths': ?allowlistPaths}; |
| } |
| } |
| |
| /// Pub/Sub specific notification config. |
| class PubSub { |
| /// Enable notifications for Pub/Sub. |
| core.bool? enabled; |
| |
| /// Allows filtering to one or more specific event types. |
| /// |
| /// If no filter is specified, or if a filter is specified with no event |
| /// types, all event types will be sent |
| Filter? filter; |
| |
| /// The desired Pub/Sub topic to which notifications will be sent by GKE. |
| /// |
| /// Format is `projects/{project}/topics/{topic}`. |
| core.String? topic; |
| |
| PubSub({this.enabled, this.filter, this.topic}); |
| |
| PubSub.fromJson(core.Map json_) |
| : this( |
| enabled: json_['enabled'] as core.bool?, |
| filter: json_.containsKey('filter') |
| ? Filter.fromJson( |
| json_['filter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| topic: json_['topic'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| final filter = this.filter; |
| final topic = this.topic; |
| return {'enabled': ?enabled, 'filter': ?filter, 'topic': ?topic}; |
| } |
| } |
| |
| /// QueuedProvisioning defines the queued provisioning used by the node pool. |
| class QueuedProvisioning { |
| /// Denotes that this node pool is QRM specific, meaning nodes can be only |
| /// obtained through queuing via the Cluster Autoscaler ProvisioningRequest |
| /// API. |
| core.bool? enabled; |
| |
| QueuedProvisioning({this.enabled}); |
| |
| QueuedProvisioning.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// RBACBindingConfig allows user to restrict ClusterRoleBindings an |
| /// RoleBindings that can be created. |
| class RBACBindingConfig { |
| /// Setting this to true will allow any ClusterRoleBinding and RoleBinding |
| /// with subjects system:authenticated. |
| core.bool? enableInsecureBindingSystemAuthenticated; |
| |
| /// Setting this to true will allow any ClusterRoleBinding and RoleBinding |
| /// with subjets system:anonymous or system:unauthenticated. |
| core.bool? enableInsecureBindingSystemUnauthenticated; |
| |
| RBACBindingConfig({ |
| this.enableInsecureBindingSystemAuthenticated, |
| this.enableInsecureBindingSystemUnauthenticated, |
| }); |
| |
| RBACBindingConfig.fromJson(core.Map json_) |
| : this( |
| enableInsecureBindingSystemAuthenticated: |
| json_['enableInsecureBindingSystemAuthenticated'] as core.bool?, |
| enableInsecureBindingSystemUnauthenticated: |
| json_['enableInsecureBindingSystemUnauthenticated'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enableInsecureBindingSystemAuthenticated = |
| this.enableInsecureBindingSystemAuthenticated; |
| final enableInsecureBindingSystemUnauthenticated = |
| this.enableInsecureBindingSystemUnauthenticated; |
| return { |
| 'enableInsecureBindingSystemAuthenticated': |
| ?enableInsecureBindingSystemAuthenticated, |
| 'enableInsecureBindingSystemUnauthenticated': |
| ?enableInsecureBindingSystemUnauthenticated, |
| }; |
| } |
| } |
| |
| /// RangeInfo contains the range name and the range utilization by this cluster. |
| class RangeInfo { |
| /// Name of a range. |
| /// |
| /// Output only. |
| core.String? rangeName; |
| |
| /// The utilization of the range. |
| /// |
| /// Output only. |
| core.double? utilization; |
| |
| RangeInfo({this.rangeName, this.utilization}); |
| |
| RangeInfo.fromJson(core.Map json_) |
| : this( |
| rangeName: json_['rangeName'] as core.String?, |
| utilization: (json_['utilization'] as core.num?)?.toDouble(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final rangeName = this.rangeName; |
| final utilization = this.utilization; |
| return {'rangeName': ?rangeName, 'utilization': ?utilization}; |
| } |
| } |
| |
| /// RayClusterLoggingConfig specifies configuration of Ray logging. |
| class RayClusterLoggingConfig { |
| /// Enable log collection for Ray clusters. |
| core.bool? enabled; |
| |
| RayClusterLoggingConfig({this.enabled}); |
| |
| RayClusterLoggingConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// RayClusterMonitoringConfig specifies monitoring configuration for Ray |
| /// clusters. |
| class RayClusterMonitoringConfig { |
| /// Enable metrics collection for Ray clusters. |
| core.bool? enabled; |
| |
| RayClusterMonitoringConfig({this.enabled}); |
| |
| RayClusterMonitoringConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration options for the Ray Operator add-on. |
| class RayOperatorConfig { |
| /// Whether the Ray Operator addon is enabled for this cluster. |
| core.bool? enabled; |
| |
| /// Logging configuration for Ray clusters. |
| /// |
| /// Optional. |
| RayClusterLoggingConfig? rayClusterLoggingConfig; |
| |
| /// Monitoring configuration for Ray clusters. |
| /// |
| /// Optional. |
| RayClusterMonitoringConfig? rayClusterMonitoringConfig; |
| |
| RayOperatorConfig({ |
| this.enabled, |
| this.rayClusterLoggingConfig, |
| this.rayClusterMonitoringConfig, |
| }); |
| |
| RayOperatorConfig.fromJson(core.Map json_) |
| : this( |
| enabled: json_['enabled'] as core.bool?, |
| rayClusterLoggingConfig: json_.containsKey('rayClusterLoggingConfig') |
| ? RayClusterLoggingConfig.fromJson( |
| json_['rayClusterLoggingConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| rayClusterMonitoringConfig: |
| json_.containsKey('rayClusterMonitoringConfig') |
| ? RayClusterMonitoringConfig.fromJson( |
| json_['rayClusterMonitoringConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| final rayClusterLoggingConfig = this.rayClusterLoggingConfig; |
| final rayClusterMonitoringConfig = this.rayClusterMonitoringConfig; |
| return { |
| 'enabled': ?enabled, |
| 'rayClusterLoggingConfig': ?rayClusterLoggingConfig, |
| 'rayClusterMonitoringConfig': ?rayClusterMonitoringConfig, |
| }; |
| } |
| } |
| |
| /// Represents an arbitrary window of time that recurs. |
| class RecurringTimeWindow { |
| /// An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how |
| /// this window recurs. |
| /// |
| /// They go on for the span of time between the start and end time. For |
| /// example, to have something repeat every weekday, you'd use: |
| /// `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily (equivalent |
| /// to the DailyMaintenanceWindow): `FREQ=DAILY` For the first weekend of |
| /// every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies how |
| /// frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4 window |
| /// every weekday, you'd use something like: ``` start time = |
| /// 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = |
| /// FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, |
| /// to make the window encompass every weekend from midnight Saturday till the |
| /// last minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time |
| /// = 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the |
| /// start and end time's specific dates are largely arbitrary except to |
| /// specify duration of the window and when it first starts. The FREQ values |
| /// of HOURLY, MINUTELY, and SECONDLY are not supported. |
| core.String? recurrence; |
| |
| /// The window of the first recurrence. |
| TimeWindow? window; |
| |
| RecurringTimeWindow({this.recurrence, this.window}); |
| |
| RecurringTimeWindow.fromJson(core.Map json_) |
| : this( |
| recurrence: json_['recurrence'] as core.String?, |
| window: json_.containsKey('window') |
| ? TimeWindow.fromJson( |
| json_['window'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final recurrence = this.recurrence; |
| final window = this.window; |
| return {'recurrence': ?recurrence, 'window': ?window}; |
| } |
| } |
| |
| /// RegistryHeader configures headers for the registry. |
| class RegistryHeader { |
| /// Key configures the header key. |
| core.String? key; |
| |
| /// Value configures the header value. |
| core.List<core.String>? value; |
| |
| RegistryHeader({this.key, this.value}); |
| |
| RegistryHeader.fromJson(core.Map json_) |
| : this( |
| key: json_['key'] as core.String?, |
| value: (json_['value'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final key = this.key; |
| final value = this.value; |
| return {'key': ?key, 'value': ?value}; |
| } |
| } |
| |
| /// RegistryHostConfig configures the top-level structure for a single |
| /// containerd registry server's configuration, which represents one hosts.toml |
| /// file on the node. |
| /// |
| /// It will override the same fqdns in PrivateRegistryAccessConfig. |
| class RegistryHostConfig { |
| /// HostConfig configures a list of host-specific configurations for the |
| /// server. |
| /// |
| /// Each server can have at most 10 host configurations. |
| core.List<HostConfig>? hosts; |
| |
| /// Defines the host name of the registry server, which will be used to create |
| /// configuration file as /etc/containerd/hosts.d//hosts.toml. |
| /// |
| /// It supports fully qualified domain names (FQDN) and IP addresses: |
| /// Specifying port is supported, while scheme and path are NOT supported. |
| /// Wildcards are NOT supported. Examples: - `my.customdomain.com` - |
| /// `10.0.1.2:5000` |
| core.String? server; |
| |
| RegistryHostConfig({this.hosts, this.server}); |
| |
| RegistryHostConfig.fromJson(core.Map json_) |
| : this( |
| hosts: (json_['hosts'] as core.List?) |
| ?.map( |
| (value) => HostConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| server: json_['server'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final hosts = this.hosts; |
| final server = this.server; |
| return {'hosts': ?hosts, 'server': ?server}; |
| } |
| } |
| |
| /// ReleaseChannel indicates which release channel a cluster is subscribed to. |
| /// |
| /// Release channels are arranged in order of risk. When a cluster is subscribed |
| /// to a release channel, Google maintains both the master version and the node |
| /// version. Node auto-upgrade defaults to true and cannot be disabled. |
| class ReleaseChannel { |
| /// channel specifies which release channel the cluster is subscribed to. |
| /// Possible string values are: |
| /// - "UNSPECIFIED" : No channel specified. |
| /// - "RAPID" : RAPID channel is offered on an early access basis for |
| /// customers who want to test new releases. WARNING: Versions available in |
| /// the RAPID Channel may be subject to unresolved issues with no known |
| /// workaround and are not subject to any SLAs. |
| /// - "REGULAR" : Clusters subscribed to REGULAR receive versions that are |
| /// considered GA quality. REGULAR is intended for production users who want |
| /// to take advantage of new features. |
| /// - "STABLE" : Clusters subscribed to STABLE receive versions that are known |
| /// to be stable and reliable in production. |
| /// - "EXTENDED" : Clusters subscribed to EXTENDED receive extended support |
| /// and availability for versions which are known to be stable and reliable in |
| /// production. |
| core.String? channel; |
| |
| ReleaseChannel({this.channel}); |
| |
| ReleaseChannel.fromJson(core.Map json_) |
| : this(channel: json_['channel'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final channel = this.channel; |
| return {'channel': ?channel}; |
| } |
| } |
| |
| /// ReleaseChannelConfig exposes configuration for a release channel. |
| class ReleaseChannelConfig { |
| /// The release channel this configuration applies to. |
| /// Possible string values are: |
| /// - "UNSPECIFIED" : No channel specified. |
| /// - "RAPID" : RAPID channel is offered on an early access basis for |
| /// customers who want to test new releases. WARNING: Versions available in |
| /// the RAPID Channel may be subject to unresolved issues with no known |
| /// workaround and are not subject to any SLAs. |
| /// - "REGULAR" : Clusters subscribed to REGULAR receive versions that are |
| /// considered GA quality. REGULAR is intended for production users who want |
| /// to take advantage of new features. |
| /// - "STABLE" : Clusters subscribed to STABLE receive versions that are known |
| /// to be stable and reliable in production. |
| /// - "EXTENDED" : Clusters subscribed to EXTENDED receive extended support |
| /// and availability for versions which are known to be stable and reliable in |
| /// production. |
| core.String? channel; |
| |
| /// The default version for newly created clusters on the channel. |
| core.String? defaultVersion; |
| |
| /// The auto upgrade target version for clusters on the channel. |
| core.String? upgradeTargetVersion; |
| |
| /// List of valid versions for the channel. |
| core.List<core.String>? validVersions; |
| |
| ReleaseChannelConfig({ |
| this.channel, |
| this.defaultVersion, |
| this.upgradeTargetVersion, |
| this.validVersions, |
| }); |
| |
| ReleaseChannelConfig.fromJson(core.Map json_) |
| : this( |
| channel: json_['channel'] as core.String?, |
| defaultVersion: json_['defaultVersion'] as core.String?, |
| upgradeTargetVersion: json_['upgradeTargetVersion'] as core.String?, |
| validVersions: (json_['validVersions'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final channel = this.channel; |
| final defaultVersion = this.defaultVersion; |
| final upgradeTargetVersion = this.upgradeTargetVersion; |
| final validVersions = this.validVersions; |
| return { |
| 'channel': ?channel, |
| 'defaultVersion': ?defaultVersion, |
| 'upgradeTargetVersion': ?upgradeTargetVersion, |
| 'validVersions': ?validVersions, |
| }; |
| } |
| } |
| |
| /// [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) |
| /// is the configuration of desired reservation which instances could take |
| /// capacity from. |
| class ReservationAffinity { |
| /// Corresponds to the type of reservation consumption. |
| /// Possible string values are: |
| /// - "UNSPECIFIED" : Default value. This should not be used. |
| /// - "NO_RESERVATION" : Do not consume from any reserved capacity. |
| /// - "ANY_RESERVATION" : Consume any reservation available. |
| /// - "SPECIFIC_RESERVATION" : Must consume from a specific reservation. Must |
| /// specify key value fields for specifying the reservations. |
| core.String? consumeReservationType; |
| |
| /// Corresponds to the label key of a reservation resource. |
| /// |
| /// To target a SPECIFIC_RESERVATION by name, specify |
| /// "compute.googleapis.com/reservation-name" as the key and specify the name |
| /// of your reservation as its value. |
| core.String? key; |
| |
| /// Corresponds to the label value(s) of reservation resource(s). |
| core.List<core.String>? values; |
| |
| ReservationAffinity({this.consumeReservationType, this.key, this.values}); |
| |
| ReservationAffinity.fromJson(core.Map json_) |
| : this( |
| consumeReservationType: json_['consumeReservationType'] as core.String?, |
| key: json_['key'] as core.String?, |
| values: (json_['values'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final consumeReservationType = this.consumeReservationType; |
| final key = this.key; |
| final values = this.values; |
| return { |
| 'consumeReservationType': ?consumeReservationType, |
| 'key': ?key, |
| 'values': ?values, |
| }; |
| } |
| } |
| |
| /// Collection of |
| /// [Resource Manager labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels). |
| typedef ResourceLabels = $Labels; |
| |
| /// Contains information about amount of some resource in the cluster. |
| /// |
| /// For memory, value should be in GB. |
| class ResourceLimit { |
| /// Maximum amount of the resource in the cluster. |
| core.String? maximum; |
| |
| /// Minimum amount of the resource in the cluster. |
| core.String? minimum; |
| |
| /// Resource name "cpu", "memory" or gpu-specific string. |
| core.String? resourceType; |
| |
| ResourceLimit({this.maximum, this.minimum, this.resourceType}); |
| |
| ResourceLimit.fromJson(core.Map json_) |
| : this( |
| maximum: json_['maximum'] as core.String?, |
| minimum: json_['minimum'] as core.String?, |
| resourceType: json_['resourceType'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final maximum = this.maximum; |
| final minimum = this.minimum; |
| final resourceType = this.resourceType; |
| return { |
| 'maximum': ?maximum, |
| 'minimum': ?minimum, |
| 'resourceType': ?resourceType, |
| }; |
| } |
| } |
| |
| /// A map of resource manager tag keys and values to be attached to the nodes |
| /// for managing Compute Engine firewalls using Network Firewall Policies. |
| /// |
| /// Tags must be according to specifications in |
| /// https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A |
| /// maximum of 5 tag key-value pairs can be specified. Existing tags will be |
| /// replaced with new values. |
| class ResourceManagerTags { |
| /// TagKeyValue must be in one of the following formats (\[KEY\]=\[VALUE\]) 1. |
| /// |
| /// `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. |
| /// `{org_id}/{tag_key_name}={tag_value_name}` 3. |
| /// `{project_id}/{tag_key_name}={tag_value_name}` |
| core.Map<core.String, core.String>? tags; |
| |
| ResourceManagerTags({this.tags}); |
| |
| ResourceManagerTags.fromJson(core.Map json_) |
| : this( |
| tags: (json_['tags'] as core.Map<core.String, core.dynamic>?)?.map( |
| (key, value) => core.MapEntry(key, value as core.String), |
| ), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final tags = this.tags; |
| return {'tags': ?tags}; |
| } |
| } |
| |
| /// Configuration for exporting cluster resource usages. |
| class ResourceUsageExportConfig { |
| /// Configuration to use BigQuery as usage export destination. |
| BigQueryDestination? bigqueryDestination; |
| |
| /// Configuration to enable resource consumption metering. |
| ConsumptionMeteringConfig? consumptionMeteringConfig; |
| |
| /// Whether to enable network egress metering for this cluster. |
| /// |
| /// If enabled, a daemonset will be created in the cluster to meter network |
| /// egress traffic. |
| core.bool? enableNetworkEgressMetering; |
| |
| ResourceUsageExportConfig({ |
| this.bigqueryDestination, |
| this.consumptionMeteringConfig, |
| this.enableNetworkEgressMetering, |
| }); |
| |
| ResourceUsageExportConfig.fromJson(core.Map json_) |
| : this( |
| bigqueryDestination: json_.containsKey('bigqueryDestination') |
| ? BigQueryDestination.fromJson( |
| json_['bigqueryDestination'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| consumptionMeteringConfig: |
| json_.containsKey('consumptionMeteringConfig') |
| ? ConsumptionMeteringConfig.fromJson( |
| json_['consumptionMeteringConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enableNetworkEgressMetering: |
| json_['enableNetworkEgressMetering'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final bigqueryDestination = this.bigqueryDestination; |
| final consumptionMeteringConfig = this.consumptionMeteringConfig; |
| final enableNetworkEgressMetering = this.enableNetworkEgressMetering; |
| return { |
| 'bigqueryDestination': ?bigqueryDestination, |
| 'consumptionMeteringConfig': ?consumptionMeteringConfig, |
| 'enableNetworkEgressMetering': ?enableNetworkEgressMetering, |
| }; |
| } |
| } |
| |
| /// RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed |
| /// NodePool upgrade. |
| /// |
| /// This will be an no-op if the last upgrade successfully completed. |
| class RollbackNodePoolUpgradeRequest { |
| /// The name of the cluster to rollback. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster, node pool id) of the node poll to |
| /// rollback upgrade. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * |
| /// /nodePools / * `. |
| core.String? name; |
| |
| /// The name of the node pool to rollback. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? nodePoolId; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// Option for rollback to ignore the PodDisruptionBudget. |
| /// |
| /// Default value is false. |
| core.bool? respectPdb; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| RollbackNodePoolUpgradeRequest({ |
| this.clusterId, |
| this.name, |
| this.nodePoolId, |
| this.projectId, |
| this.respectPdb, |
| this.zone, |
| }); |
| |
| RollbackNodePoolUpgradeRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| nodePoolId: json_['nodePoolId'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| respectPdb: json_['respectPdb'] as core.bool?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final nodePoolId = this.nodePoolId; |
| final projectId = this.projectId; |
| final respectPdb = this.respectPdb; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'nodePoolId': ?nodePoolId, |
| 'projectId': ?projectId, |
| 'respectPdb': ?respectPdb, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// RotationConfig is config for secret manager auto rotation. |
| typedef RotationConfig = $RotationConfig; |
| |
| /// SandboxConfig contains configurations of the sandbox to use for the node. |
| class SandboxConfig { |
| /// Type of the sandbox to use for the node. |
| /// Possible string values are: |
| /// - "UNSPECIFIED" : Default value. This should not be used. |
| /// - "GVISOR" : Run sandbox using gvisor. |
| core.String? type; |
| |
| SandboxConfig({this.type}); |
| |
| SandboxConfig.fromJson(core.Map json_) |
| : this(type: json_['type'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final type = this.type; |
| return {'type': ?type}; |
| } |
| } |
| |
| /// Configuration for scheduled upgrades on the cluster. |
| class ScheduleUpgradeConfig { |
| /// Whether or not scheduled upgrades are enabled. |
| /// |
| /// Optional. |
| core.bool? enabled; |
| |
| ScheduleUpgradeConfig({this.enabled}); |
| |
| ScheduleUpgradeConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// SecondaryBootDisk represents a persistent disk attached to a node with |
| /// special configurations based on its mode. |
| class SecondaryBootDisk { |
| /// Fully-qualified resource ID for an existing disk image. |
| core.String? diskImage; |
| |
| /// Disk mode (container image cache, etc.) |
| /// Possible string values are: |
| /// - "MODE_UNSPECIFIED" : MODE_UNSPECIFIED is when mode is not set. |
| /// - "CONTAINER_IMAGE_CACHE" : CONTAINER_IMAGE_CACHE is for using the |
| /// secondary boot disk as a container image cache. |
| core.String? mode; |
| |
| SecondaryBootDisk({this.diskImage, this.mode}); |
| |
| SecondaryBootDisk.fromJson(core.Map json_) |
| : this( |
| diskImage: json_['diskImage'] as core.String?, |
| mode: json_['mode'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final diskImage = this.diskImage; |
| final mode = this.mode; |
| return {'diskImage': ?diskImage, 'mode': ?mode}; |
| } |
| } |
| |
| /// SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in |
| /// the future to define different options for updating secondary boot disks. |
| typedef SecondaryBootDiskUpdateStrategy = $Empty; |
| |
| /// SecretManagerConfig is config for secret manager enablement. |
| class SecretManagerConfig { |
| /// Enable/Disable Secret Manager Config. |
| core.bool? enabled; |
| |
| /// Rotation config for secret manager. |
| RotationConfig? rotationConfig; |
| |
| SecretManagerConfig({this.enabled, this.rotationConfig}); |
| |
| SecretManagerConfig.fromJson(core.Map json_) |
| : this( |
| enabled: json_['enabled'] as core.bool?, |
| rotationConfig: json_.containsKey('rotationConfig') |
| ? RotationConfig.fromJson( |
| json_['rotationConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| final rotationConfig = this.rotationConfig; |
| return {'enabled': ?enabled, 'rotationConfig': ?rotationConfig}; |
| } |
| } |
| |
| /// Configuration for sync Secret Manager secrets as k8s secrets. |
| class SecretSyncConfig { |
| /// Enable/Disable Secret Sync Config. |
| core.bool? enabled; |
| |
| /// Rotation config for secret manager. |
| SyncRotationConfig? rotationConfig; |
| |
| SecretSyncConfig({this.enabled, this.rotationConfig}); |
| |
| SecretSyncConfig.fromJson(core.Map json_) |
| : this( |
| enabled: json_['enabled'] as core.bool?, |
| rotationConfig: json_.containsKey('rotationConfig') |
| ? SyncRotationConfig.fromJson( |
| json_['rotationConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| final rotationConfig = this.rotationConfig; |
| return {'enabled': ?enabled, 'rotationConfig': ?rotationConfig}; |
| } |
| } |
| |
| /// SecurityPostureConfig defines the flags needed to enable/disable features |
| /// for the Security Posture API. |
| typedef SecurityPostureConfig = $SecurityPostureConfig; |
| |
| /// Kubernetes Engine service configuration. |
| class ServerConfig { |
| /// List of release channel configurations. |
| core.List<ReleaseChannelConfig>? channels; |
| |
| /// Version of Kubernetes the service deploys by default. |
| core.String? defaultClusterVersion; |
| |
| /// Default image type. |
| core.String? defaultImageType; |
| |
| /// List of valid image types. |
| core.List<core.String>? validImageTypes; |
| |
| /// List of valid master versions, in descending order. |
| core.List<core.String>? validMasterVersions; |
| |
| /// List of valid node upgrade target versions, in descending order. |
| core.List<core.String>? validNodeVersions; |
| |
| ServerConfig({ |
| this.channels, |
| this.defaultClusterVersion, |
| this.defaultImageType, |
| this.validImageTypes, |
| this.validMasterVersions, |
| this.validNodeVersions, |
| }); |
| |
| ServerConfig.fromJson(core.Map json_) |
| : this( |
| channels: (json_['channels'] as core.List?) |
| ?.map( |
| (value) => ReleaseChannelConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| defaultClusterVersion: json_['defaultClusterVersion'] as core.String?, |
| defaultImageType: json_['defaultImageType'] as core.String?, |
| validImageTypes: (json_['validImageTypes'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| validMasterVersions: (json_['validMasterVersions'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| validNodeVersions: (json_['validNodeVersions'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final channels = this.channels; |
| final defaultClusterVersion = this.defaultClusterVersion; |
| final defaultImageType = this.defaultImageType; |
| final validImageTypes = this.validImageTypes; |
| final validMasterVersions = this.validMasterVersions; |
| final validNodeVersions = this.validNodeVersions; |
| return { |
| 'channels': ?channels, |
| 'defaultClusterVersion': ?defaultClusterVersion, |
| 'defaultImageType': ?defaultImageType, |
| 'validImageTypes': ?validImageTypes, |
| 'validMasterVersions': ?validMasterVersions, |
| 'validNodeVersions': ?validNodeVersions, |
| }; |
| } |
| } |
| |
| /// Config to block services with externalIPs field. |
| class ServiceExternalIPsConfig { |
| /// Whether Services with ExternalIPs field are allowed or not. |
| core.bool? enabled; |
| |
| ServiceExternalIPsConfig({this.enabled}); |
| |
| ServiceExternalIPsConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// SetAddonsConfigRequest sets the addons associated with the cluster. |
| class SetAddonsConfigRequest { |
| /// The desired configurations for the various addons available to run in the |
| /// cluster. |
| /// |
| /// Required. |
| AddonsConfig? addonsConfig; |
| |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster) of the cluster to set addons. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetAddonsConfigRequest({ |
| this.addonsConfig, |
| this.clusterId, |
| this.name, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetAddonsConfigRequest.fromJson(core.Map json_) |
| : this( |
| addonsConfig: json_.containsKey('addonsConfig') |
| ? AddonsConfig.fromJson( |
| json_['addonsConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final addonsConfig = this.addonsConfig; |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'addonsConfig': ?addonsConfig, |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetLabelsRequest sets the Google Cloud Platform labels on a Google Container |
| /// Engine cluster, which will in turn set them for Google Compute Engine |
| /// resources used by that cluster |
| class SetLabelsRequest { |
| /// The name of the cluster. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The fingerprint of the previous set of labels for this resource, used to |
| /// detect conflicts. |
| /// |
| /// The fingerprint is initially generated by Kubernetes Engine and changes |
| /// after every request to modify or update labels. You must always provide an |
| /// up-to-date fingerprint hash when updating or changing labels. Make a |
| /// `get()` request to the resource to get the latest fingerprint. |
| /// |
| /// Required. |
| core.String? labelFingerprint; |
| |
| /// The name (project, location, cluster name) of the cluster to set labels. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The labels to set for that cluster. |
| /// |
| /// Required. |
| core.Map<core.String, core.String>? resourceLabels; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetLabelsRequest({ |
| this.clusterId, |
| this.labelFingerprint, |
| this.name, |
| this.projectId, |
| this.resourceLabels, |
| this.zone, |
| }); |
| |
| SetLabelsRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| labelFingerprint: json_['labelFingerprint'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| resourceLabels: |
| (json_['resourceLabels'] as core.Map<core.String, core.dynamic>?) |
| ?.map((key, value) => core.MapEntry(key, value as core.String)), |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final labelFingerprint = this.labelFingerprint; |
| final name = this.name; |
| final projectId = this.projectId; |
| final resourceLabels = this.resourceLabels; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'labelFingerprint': ?labelFingerprint, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'resourceLabels': ?resourceLabels, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetLegacyAbacRequest enables or disables the ABAC authorization mechanism |
| /// for a cluster. |
| class SetLegacyAbacRequest { |
| /// The name of the cluster to update. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// Whether ABAC authorization will be enabled in the cluster. |
| /// |
| /// Required. |
| core.bool? enabled; |
| |
| /// The name (project, location, cluster name) of the cluster to set legacy |
| /// abac. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetLegacyAbacRequest({ |
| this.clusterId, |
| this.enabled, |
| this.name, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetLegacyAbacRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| enabled: json_['enabled'] as core.bool?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final enabled = this.enabled; |
| final name = this.name; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'enabled': ?enabled, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetLocationsRequest sets the locations of the cluster. |
| class SetLocationsRequest { |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The desired list of Google Compute Engine |
| /// [zones](https://cloud.google.com/compute/docs/zones#available) in which |
| /// the cluster's nodes should be located. |
| /// |
| /// Changing the locations a cluster is in will result in nodes being either |
| /// created or removed from the cluster, depending on whether locations are |
| /// being added or removed. This list must always include the cluster's |
| /// primary zone. |
| /// |
| /// Required. |
| core.List<core.String>? locations; |
| |
| /// The name (project, location, cluster) of the cluster to set locations. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetLocationsRequest({ |
| this.clusterId, |
| this.locations, |
| this.name, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetLocationsRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| locations: (json_['locations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final locations = this.locations; |
| final name = this.name; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'locations': ?locations, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetLoggingServiceRequest sets the logging service of a cluster. |
| class SetLoggingServiceRequest { |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The logging service the cluster should use to write logs. |
| /// |
| /// Currently available options: * `logging.googleapis.com/kubernetes` - The |
| /// Cloud Logging service with a Kubernetes-native resource model * |
| /// `logging.googleapis.com` - The legacy Cloud Logging service (no longer |
| /// available as of GKE 1.15). * `none` - no logs will be exported from the |
| /// cluster. If left as an empty string,`logging.googleapis.com/kubernetes` |
| /// will be used for GKE 1.14+ or `logging.googleapis.com` for earlier |
| /// versions. |
| /// |
| /// Required. |
| core.String? loggingService; |
| |
| /// The name (project, location, cluster) of the cluster to set logging. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetLoggingServiceRequest({ |
| this.clusterId, |
| this.loggingService, |
| this.name, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetLoggingServiceRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| loggingService: json_['loggingService'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final loggingService = this.loggingService; |
| final name = this.name; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'loggingService': ?loggingService, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetMaintenancePolicyRequest sets the maintenance policy for a cluster. |
| class SetMaintenancePolicyRequest { |
| /// The name of the cluster to update. |
| /// |
| /// Required. |
| core.String? clusterId; |
| |
| /// The maintenance policy to be set for the cluster. |
| /// |
| /// An empty field clears the existing maintenance policy. |
| /// |
| /// Required. |
| MaintenancePolicy? maintenancePolicy; |
| |
| /// The name (project, location, cluster name) of the cluster to set |
| /// maintenance policy. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// Required. |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// Required. |
| core.String? zone; |
| |
| SetMaintenancePolicyRequest({ |
| this.clusterId, |
| this.maintenancePolicy, |
| this.name, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetMaintenancePolicyRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| maintenancePolicy: json_.containsKey('maintenancePolicy') |
| ? MaintenancePolicy.fromJson( |
| json_['maintenancePolicy'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final maintenancePolicy = this.maintenancePolicy; |
| final name = this.name; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'maintenancePolicy': ?maintenancePolicy, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetMasterAuthRequest updates the admin password of a cluster. |
| class SetMasterAuthRequest { |
| /// The exact form of action to be taken on the master auth. |
| /// |
| /// Required. |
| /// Possible string values are: |
| /// - "UNKNOWN" : Operation is unknown and will error out. |
| /// - "SET_PASSWORD" : Set the password to a user generated value. |
| /// - "GENERATE_PASSWORD" : Generate a new password and set it to that. |
| /// - "SET_USERNAME" : Set the username. If an empty username is provided, |
| /// basic authentication is disabled for the cluster. If a non-empty username |
| /// is provided, basic authentication is enabled, with either a provided |
| /// password or a generated one. |
| core.String? action; |
| |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster) of the cluster to set auth. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// A description of the update. |
| /// |
| /// Required. |
| MasterAuth? update; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetMasterAuthRequest({ |
| this.action, |
| this.clusterId, |
| this.name, |
| this.projectId, |
| this.update, |
| this.zone, |
| }); |
| |
| SetMasterAuthRequest.fromJson(core.Map json_) |
| : this( |
| action: json_['action'] as core.String?, |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| update: json_.containsKey('update') |
| ? MasterAuth.fromJson( |
| json_['update'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final action = this.action; |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final projectId = this.projectId; |
| final update = this.update; |
| final zone = this.zone; |
| return { |
| 'action': ?action, |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'update': ?update, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetMonitoringServiceRequest sets the monitoring service of a cluster. |
| class SetMonitoringServiceRequest { |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The monitoring service the cluster should use to write metrics. |
| /// |
| /// Currently available options: * `monitoring.googleapis.com/kubernetes` - |
| /// The Cloud Monitoring service with a Kubernetes-native resource model * |
| /// `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no |
| /// longer available as of GKE 1.15). * `none` - No metrics will be exported |
| /// from the cluster. If left as an empty |
| /// string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ |
| /// or `monitoring.googleapis.com` for earlier versions. |
| /// |
| /// Required. |
| core.String? monitoringService; |
| |
| /// The name (project, location, cluster) of the cluster to set monitoring. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetMonitoringServiceRequest({ |
| this.clusterId, |
| this.monitoringService, |
| this.name, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetMonitoringServiceRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| monitoringService: json_['monitoringService'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final monitoringService = this.monitoringService; |
| final name = this.name; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'monitoringService': ?monitoringService, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetNetworkPolicyRequest enables/disables network policy for a cluster. |
| class SetNetworkPolicyRequest { |
| /// The name of the cluster. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster name) of the cluster to set |
| /// networking policy. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// Configuration options for the NetworkPolicy feature. |
| /// |
| /// Required. |
| NetworkPolicy? networkPolicy; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetNetworkPolicyRequest({ |
| this.clusterId, |
| this.name, |
| this.networkPolicy, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetNetworkPolicyRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| networkPolicy: json_.containsKey('networkPolicy') |
| ? NetworkPolicy.fromJson( |
| json_['networkPolicy'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final networkPolicy = this.networkPolicy; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'networkPolicy': ?networkPolicy, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool. |
| class SetNodePoolAutoscalingRequest { |
| /// Autoscaling configuration for the node pool. |
| /// |
| /// Required. |
| NodePoolAutoscaling? autoscaling; |
| |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster, node pool) of the node pool to set |
| /// autoscaler settings. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * |
| /// /nodePools / * `. |
| core.String? name; |
| |
| /// The name of the node pool to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? nodePoolId; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetNodePoolAutoscalingRequest({ |
| this.autoscaling, |
| this.clusterId, |
| this.name, |
| this.nodePoolId, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetNodePoolAutoscalingRequest.fromJson(core.Map json_) |
| : this( |
| autoscaling: json_.containsKey('autoscaling') |
| ? NodePoolAutoscaling.fromJson( |
| json_['autoscaling'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| nodePoolId: json_['nodePoolId'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final autoscaling = this.autoscaling; |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final nodePoolId = this.nodePoolId; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'autoscaling': ?autoscaling, |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'nodePoolId': ?nodePoolId, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetNodePoolManagementRequest sets the node management properties of a node |
| /// pool. |
| class SetNodePoolManagementRequest { |
| /// The name of the cluster to update. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// NodeManagement configuration for the node pool. |
| /// |
| /// Required. |
| NodeManagement? management; |
| |
| /// The name (project, location, cluster, node pool id) of the node pool to |
| /// set management properties. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * |
| /// /nodePools / * `. |
| core.String? name; |
| |
| /// The name of the node pool to update. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? nodePoolId; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetNodePoolManagementRequest({ |
| this.clusterId, |
| this.management, |
| this.name, |
| this.nodePoolId, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetNodePoolManagementRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| management: json_.containsKey('management') |
| ? NodeManagement.fromJson( |
| json_['management'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| name: json_['name'] as core.String?, |
| nodePoolId: json_['nodePoolId'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final management = this.management; |
| final name = this.name; |
| final nodePoolId = this.nodePoolId; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'management': ?management, |
| 'name': ?name, |
| 'nodePoolId': ?nodePoolId, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// SetNodePoolSizeRequest sets the size of a node pool. |
| class SetNodePoolSizeRequest { |
| /// The name of the cluster to update. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster, node pool id) of the node pool to |
| /// set size. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * |
| /// /nodePools / * `. |
| core.String? name; |
| |
| /// The desired node count for the pool. |
| /// |
| /// Required. |
| core.int? nodeCount; |
| |
| /// The name of the node pool to update. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? nodePoolId; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| SetNodePoolSizeRequest({ |
| this.clusterId, |
| this.name, |
| this.nodeCount, |
| this.nodePoolId, |
| this.projectId, |
| this.zone, |
| }); |
| |
| SetNodePoolSizeRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| nodeCount: json_['nodeCount'] as core.int?, |
| nodePoolId: json_['nodePoolId'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final nodeCount = this.nodeCount; |
| final nodePoolId = this.nodePoolId; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'nodeCount': ?nodeCount, |
| 'nodePoolId': ?nodePoolId, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// A set of Shielded Instance options. |
| class ShieldedInstanceConfig { |
| /// Defines whether the instance has integrity monitoring enabled. |
| /// |
| /// Enables monitoring and attestation of the boot integrity of the instance. |
| /// The attestation is performed against the integrity policy baseline. This |
| /// baseline is initially derived from the implicitly trusted boot image when |
| /// the instance is created. |
| core.bool? enableIntegrityMonitoring; |
| |
| /// Defines whether the instance has Secure Boot enabled. |
| /// |
| /// Secure Boot helps ensure that the system only runs authentic software by |
| /// verifying the digital signature of all boot components, and halting the |
| /// boot process if signature verification fails. |
| core.bool? enableSecureBoot; |
| |
| ShieldedInstanceConfig({ |
| this.enableIntegrityMonitoring, |
| this.enableSecureBoot, |
| }); |
| |
| ShieldedInstanceConfig.fromJson(core.Map json_) |
| : this( |
| enableIntegrityMonitoring: |
| json_['enableIntegrityMonitoring'] as core.bool?, |
| enableSecureBoot: json_['enableSecureBoot'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enableIntegrityMonitoring = this.enableIntegrityMonitoring; |
| final enableSecureBoot = this.enableSecureBoot; |
| return { |
| 'enableIntegrityMonitoring': ?enableIntegrityMonitoring, |
| 'enableSecureBoot': ?enableSecureBoot, |
| }; |
| } |
| } |
| |
| /// Configuration of Shielded Nodes feature. |
| class ShieldedNodes { |
| /// Whether Shielded Nodes features are enabled on all nodes in this cluster. |
| core.bool? enabled; |
| |
| ShieldedNodes({this.enabled}); |
| |
| ShieldedNodes.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration for the Slice Controller. |
| class SliceControllerConfig { |
| /// Indicates whether Slice Controller is enabled in the cluster. |
| /// |
| /// Optional. |
| core.bool? enabled; |
| |
| SliceControllerConfig({this.enabled}); |
| |
| SliceControllerConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration for the Slurm Operator. |
| class SlurmOperatorConfig { |
| /// When enabled, it runs a Slurm Operator that manages the set of compute |
| /// pods for Slurm Cluster. |
| core.bool? enabled; |
| |
| SlurmOperatorConfig({this.enabled}); |
| |
| SlurmOperatorConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// SoleTenantConfig contains the NodeAffinities to specify what shared sole |
| /// tenant node groups should back the node pool. |
| class SoleTenantConfig { |
| /// The minimum number of virtual CPUs this instance will consume when running |
| /// on a sole-tenant node. |
| /// |
| /// This field can only be set if the node pool is created in a shared |
| /// sole-tenant node group. |
| /// |
| /// Optional. |
| core.int? minNodeCpus; |
| |
| /// NodeAffinities used to match to a shared sole tenant node group. |
| core.List<NodeAffinity>? nodeAffinities; |
| |
| SoleTenantConfig({this.minNodeCpus, this.nodeAffinities}); |
| |
| SoleTenantConfig.fromJson(core.Map json_) |
| : this( |
| minNodeCpus: json_['minNodeCpus'] as core.int?, |
| nodeAffinities: (json_['nodeAffinities'] as core.List?) |
| ?.map( |
| (value) => NodeAffinity.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final minNodeCpus = this.minNodeCpus; |
| final nodeAffinities = this.nodeAffinities; |
| return {'minNodeCpus': ?minNodeCpus, 'nodeAffinities': ?nodeAffinities}; |
| } |
| } |
| |
| /// Standard rollout policy is the default policy for blue-green. |
| class StandardRolloutPolicy { |
| /// Number of blue nodes to drain in a batch. |
| core.int? batchNodeCount; |
| |
| /// Percentage of the blue pool nodes to drain in a batch. |
| /// |
| /// The range of this field should be (0.0, 1.0\]. |
| core.double? batchPercentage; |
| |
| /// Soak time after each batch gets drained. |
| /// |
| /// Default to zero. |
| core.String? batchSoakDuration; |
| |
| StandardRolloutPolicy({ |
| this.batchNodeCount, |
| this.batchPercentage, |
| this.batchSoakDuration, |
| }); |
| |
| StandardRolloutPolicy.fromJson(core.Map json_) |
| : this( |
| batchNodeCount: json_['batchNodeCount'] as core.int?, |
| batchPercentage: (json_['batchPercentage'] as core.num?)?.toDouble(), |
| batchSoakDuration: json_['batchSoakDuration'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final batchNodeCount = this.batchNodeCount; |
| final batchPercentage = this.batchPercentage; |
| final batchSoakDuration = this.batchSoakDuration; |
| return { |
| 'batchNodeCount': ?batchNodeCount, |
| 'batchPercentage': ?batchPercentage, |
| 'batchSoakDuration': ?batchSoakDuration, |
| }; |
| } |
| } |
| |
| /// StartIPRotationRequest creates a new IP for the cluster and then performs a |
| /// node upgrade on each node pool to point to the new IP. |
| class StartIPRotationRequest { |
| /// The name of the cluster. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster name) of the cluster to start IP |
| /// rotation. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// Whether to rotate credentials during IP rotation. |
| core.bool? rotateCredentials; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| StartIPRotationRequest({ |
| this.clusterId, |
| this.name, |
| this.projectId, |
| this.rotateCredentials, |
| this.zone, |
| }); |
| |
| StartIPRotationRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| rotateCredentials: json_['rotateCredentials'] as core.bool?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final projectId = this.projectId; |
| final rotateCredentials = this.rotateCredentials; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'rotateCredentials': ?rotateCredentials, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// Configuration for the Stateful HA add-on. |
| class StatefulHAConfig { |
| /// Whether the Stateful HA add-on is enabled for this cluster. |
| core.bool? enabled; |
| |
| StatefulHAConfig({this.enabled}); |
| |
| StatefulHAConfig.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// The `Status` type defines a logical error model that is suitable for |
| /// different programming environments, including REST APIs and RPC APIs. |
| /// |
| /// It is used by [gRPC](https://github.com/grpc). Each `Status` message |
| /// contains three pieces of data: error code, error message, and error details. |
| /// You can find out more about this error model and how to work with it in the |
| /// [API Design Guide](https://cloud.google.com/apis/design/errors). |
| typedef Status = $Status00; |
| |
| /// StatusCondition describes why a cluster or a node pool has a certain status |
| /// (e.g., ERROR or DEGRADED). |
| class StatusCondition { |
| /// Canonical code of the condition. |
| /// Possible string values are: |
| /// - "OK" : Not an error; returned on success. HTTP Mapping: 200 OK |
| /// - "CANCELLED" : The operation was cancelled, typically by the caller. HTTP |
| /// Mapping: 499 Client Closed Request |
| /// - "UNKNOWN" : Unknown error. For example, this error may be returned when |
| /// a `Status` value received from another address space belongs to an error |
| /// space that is not known in this address space. Also errors raised by APIs |
| /// that do not return enough error information may be converted to this |
| /// error. HTTP Mapping: 500 Internal Server Error |
| /// - "INVALID_ARGUMENT" : The client specified an invalid argument. Note that |
| /// this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates |
| /// arguments that are problematic regardless of the state of the system |
| /// (e.g., a malformed file name). HTTP Mapping: 400 Bad Request |
| /// - "DEADLINE_EXCEEDED" : The deadline expired before the operation could |
| /// complete. For operations that change the state of the system, this error |
| /// may be returned even if the operation has completed successfully. For |
| /// example, a successful response from a server could have been delayed long |
| /// enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout |
| /// - "NOT_FOUND" : Some requested entity (e.g., file or directory) was not |
| /// found. Note to server developers: if a request is denied for an entire |
| /// class of users, such as gradual feature rollout or undocumented allowlist, |
| /// `NOT_FOUND` may be used. If a request is denied for some users within a |
| /// class of users, such as user-based access control, `PERMISSION_DENIED` |
| /// must be used. HTTP Mapping: 404 Not Found |
| /// - "ALREADY_EXISTS" : The entity that a client attempted to create (e.g., |
| /// file or directory) already exists. HTTP Mapping: 409 Conflict |
| /// - "PERMISSION_DENIED" : The caller does not have permission to execute the |
| /// specified operation. `PERMISSION_DENIED` must not be used for rejections |
| /// caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for |
| /// those errors). `PERMISSION_DENIED` must not be used if the caller can not |
| /// be identified (use `UNAUTHENTICATED` instead for those errors). This error |
| /// code does not imply the request is valid or the requested entity exists or |
| /// satisfies other pre-conditions. HTTP Mapping: 403 Forbidden |
| /// - "UNAUTHENTICATED" : The request does not have valid authentication |
| /// credentials for the operation. HTTP Mapping: 401 Unauthorized |
| /// - "RESOURCE_EXHAUSTED" : Some resource has been exhausted, perhaps a |
| /// per-user quota, or perhaps the entire file system is out of space. HTTP |
| /// Mapping: 429 Too Many Requests |
| /// - "FAILED_PRECONDITION" : The operation was rejected because the system is |
| /// not in a state required for the operation's execution. For example, the |
| /// directory to be deleted is non-empty, an rmdir operation is applied to a |
| /// non-directory, etc. Service implementors can use the following guidelines |
| /// to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) |
| /// Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use |
| /// `ABORTED` if the client should retry at a higher level. For example, when |
| /// a client-specified test-and-set fails, indicating the client should |
| /// restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the |
| /// client should not retry until the system state has been explicitly fixed. |
| /// For example, if an "rmdir" fails because the directory is non-empty, |
| /// `FAILED_PRECONDITION` should be returned since the client should not retry |
| /// unless the files are deleted from the directory. HTTP Mapping: 400 Bad |
| /// Request |
| /// - "ABORTED" : The operation was aborted, typically due to a concurrency |
| /// issue such as a sequencer check failure or transaction abort. See the |
| /// guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, |
| /// and `UNAVAILABLE`. HTTP Mapping: 409 Conflict |
| /// - "OUT_OF_RANGE" : The operation was attempted past the valid range. E.g., |
| /// seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error |
| /// indicates a problem that may be fixed if the system state changes. For |
| /// example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to |
| /// read at an offset that is not in the range \[0,2^32-1\], but it will |
| /// generate `OUT_OF_RANGE` if asked to read from an offset past the current |
| /// file size. There is a fair bit of overlap between `FAILED_PRECONDITION` |
| /// and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific |
| /// error) when it applies so that callers who are iterating through a space |
| /// can easily look for an `OUT_OF_RANGE` error to detect when they are done. |
| /// HTTP Mapping: 400 Bad Request |
| /// - "UNIMPLEMENTED" : The operation is not implemented or is not |
| /// supported/enabled in this service. HTTP Mapping: 501 Not Implemented |
| /// - "INTERNAL" : Internal errors. This means that some invariants expected |
| /// by the underlying system have been broken. This error code is reserved for |
| /// serious errors. HTTP Mapping: 500 Internal Server Error |
| /// - "UNAVAILABLE" : The service is currently unavailable. This is most |
| /// likely a transient condition, which can be corrected by retrying with a |
| /// backoff. Note that it is not always safe to retry non-idempotent |
| /// operations. See the guidelines above for deciding between |
| /// `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 |
| /// Service Unavailable |
| /// - "DATA_LOSS" : Unrecoverable data loss or corruption. HTTP Mapping: 500 |
| /// Internal Server Error |
| core.String? canonicalCode; |
| |
| /// Machine-friendly representation of the condition Deprecated. |
| /// |
| /// Use canonical_code instead. |
| /// Possible string values are: |
| /// - "UNKNOWN" : UNKNOWN indicates a generic condition. |
| /// - "GCE_STOCKOUT" : GCE_STOCKOUT indicates that Google Compute Engine |
| /// resources are temporarily unavailable. |
| /// - "GKE_SERVICE_ACCOUNT_DELETED" : GKE_SERVICE_ACCOUNT_DELETED indicates |
| /// that the user deleted their robot service account. |
| /// - "GCE_QUOTA_EXCEEDED" : Google Compute Engine quota was exceeded. |
| /// - "SET_BY_OPERATOR" : Cluster state was manually changed by an SRE due to |
| /// a system logic error. |
| /// - "CLOUD_KMS_KEY_ERROR" : Unable to perform an encrypt operation against |
| /// the CloudKMS key used for etcd level encryption. |
| /// - "CA_EXPIRING" : Cluster CA is expiring soon. |
| /// - "NODE_SERVICE_ACCOUNT_MISSING_PERMISSIONS" : Node service account is |
| /// missing permissions. |
| /// - "CLOUD_KMS_KEY_DESTROYED" : Cloud KMS key version used for etcd level |
| /// encryption has been destroyed. This is a permanent error. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? code; |
| |
| /// Human-friendly representation of the condition |
| core.String? message; |
| |
| StatusCondition({this.canonicalCode, this.code, this.message}); |
| |
| StatusCondition.fromJson(core.Map json_) |
| : this( |
| canonicalCode: json_['canonicalCode'] as core.String?, |
| code: json_['code'] as core.String?, |
| message: json_['message'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final canonicalCode = this.canonicalCode; |
| final code = this.code; |
| final message = this.message; |
| return { |
| 'canonicalCode': ?canonicalCode, |
| 'code': ?code, |
| 'message': ?message, |
| }; |
| } |
| } |
| |
| /// Configuration for swap memory on a node pool. |
| class SwapConfig { |
| /// Swap on the node's boot disk. |
| BootDiskProfile? bootDiskProfile; |
| |
| /// Provisions a new, separate local NVMe SSD exclusively for swap. |
| DedicatedLocalSsdProfile? dedicatedLocalSsdProfile; |
| |
| /// Enables or disables swap for the node pool. |
| /// |
| /// Optional. |
| core.bool? enabled; |
| |
| /// If omitted, swap space is encrypted by default. |
| /// |
| /// Optional. |
| EncryptionConfig? encryptionConfig; |
| |
| /// Swap on the local SSD shared with pod ephemeral storage. |
| EphemeralLocalSsdProfile? ephemeralLocalSsdProfile; |
| |
| SwapConfig({ |
| this.bootDiskProfile, |
| this.dedicatedLocalSsdProfile, |
| this.enabled, |
| this.encryptionConfig, |
| this.ephemeralLocalSsdProfile, |
| }); |
| |
| SwapConfig.fromJson(core.Map json_) |
| : this( |
| bootDiskProfile: json_.containsKey('bootDiskProfile') |
| ? BootDiskProfile.fromJson( |
| json_['bootDiskProfile'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dedicatedLocalSsdProfile: json_.containsKey('dedicatedLocalSsdProfile') |
| ? DedicatedLocalSsdProfile.fromJson( |
| json_['dedicatedLocalSsdProfile'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| enabled: json_['enabled'] as core.bool?, |
| encryptionConfig: json_.containsKey('encryptionConfig') |
| ? EncryptionConfig.fromJson( |
| json_['encryptionConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ephemeralLocalSsdProfile: json_.containsKey('ephemeralLocalSsdProfile') |
| ? EphemeralLocalSsdProfile.fromJson( |
| json_['ephemeralLocalSsdProfile'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final bootDiskProfile = this.bootDiskProfile; |
| final dedicatedLocalSsdProfile = this.dedicatedLocalSsdProfile; |
| final enabled = this.enabled; |
| final encryptionConfig = this.encryptionConfig; |
| final ephemeralLocalSsdProfile = this.ephemeralLocalSsdProfile; |
| return { |
| 'bootDiskProfile': ?bootDiskProfile, |
| 'dedicatedLocalSsdProfile': ?dedicatedLocalSsdProfile, |
| 'enabled': ?enabled, |
| 'encryptionConfig': ?encryptionConfig, |
| 'ephemeralLocalSsdProfile': ?ephemeralLocalSsdProfile, |
| }; |
| } |
| } |
| |
| /// SyncRotationConfig is config for secret manager auto rotation. |
| typedef SyncRotationConfig = $RotationConfig; |
| |
| /// TaintConfig contains the configuration for the taints of the node pool. |
| class TaintConfig { |
| /// Controls architecture tainting behavior. |
| /// |
| /// Optional. |
| /// Possible string values are: |
| /// - "ARCHITECTURE_TAINT_BEHAVIOR_UNSPECIFIED" : Specifies that the behavior |
| /// is unspecified, defaults to ARM. |
| /// - "NONE" : Disables default architecture taints on the node pool. |
| /// - "ARM" : Taints all the nodes in the node pool with the default ARM |
| /// taint. |
| core.String? architectureTaintBehavior; |
| |
| TaintConfig({this.architectureTaintBehavior}); |
| |
| TaintConfig.fromJson(core.Map json_) |
| : this( |
| architectureTaintBehavior: |
| json_['architectureTaintBehavior'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final architectureTaintBehavior = this.architectureTaintBehavior; |
| return {'architectureTaintBehavior': ?architectureTaintBehavior}; |
| } |
| } |
| |
| /// Represents an arbitrary window of time. |
| class TimeWindow { |
| /// The time that the window ends. |
| /// |
| /// The end time should take place after the start time. |
| core.String? endTime; |
| |
| /// MaintenanceExclusionOptions provides maintenance exclusion related |
| /// options. |
| MaintenanceExclusionOptions? maintenanceExclusionOptions; |
| |
| /// The time that the window first starts. |
| core.String? startTime; |
| |
| TimeWindow({this.endTime, this.maintenanceExclusionOptions, this.startTime}); |
| |
| TimeWindow.fromJson(core.Map json_) |
| : this( |
| endTime: json_['endTime'] as core.String?, |
| maintenanceExclusionOptions: |
| json_.containsKey('maintenanceExclusionOptions') |
| ? MaintenanceExclusionOptions.fromJson( |
| json_['maintenanceExclusionOptions'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| startTime: json_['startTime'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final endTime = this.endTime; |
| final maintenanceExclusionOptions = this.maintenanceExclusionOptions; |
| final startTime = this.startTime; |
| return { |
| 'endTime': ?endTime, |
| 'maintenanceExclusionOptions': ?maintenanceExclusionOptions, |
| 'startTime': ?startTime, |
| }; |
| } |
| } |
| |
| /// TopologyManager defines the configuration options for Topology Manager |
| /// feature. |
| /// |
| /// See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ |
| class TopologyManager { |
| /// Configures the strategy for resource alignment. |
| /// |
| /// Allowed values are: * none: the default policy, and does not perform any |
| /// topology alignment. * restricted: the topology manager stores the |
| /// preferred NUMA node affinity for the container, and will reject the pod if |
| /// the affinity if not preferred. * best-effort: the topology manager stores |
| /// the preferred NUMA node affinity for the container. If the affinity is not |
| /// preferred, the topology manager will admit the pod to the node anyway. * |
| /// single-numa-node: the topology manager determines if the single NUMA node |
| /// affinity is possible. If it is, Topology Manager will store this and the |
| /// Hint Providers can then use this information when making the resource |
| /// allocation decision. If, however, this is not possible then the Topology |
| /// Manager will reject the pod from the node. This will result in a pod in a |
| /// Terminated state with a pod admission failure. The default policy value is |
| /// 'none' if unspecified. Details about each strategy can be found |
| /// [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies). |
| core.String? policy; |
| |
| /// The Topology Manager aligns resources in following scopes: * container * |
| /// pod The default scope is 'container' if unspecified. |
| /// |
| /// See |
| /// https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes |
| core.String? scope; |
| |
| TopologyManager({this.policy, this.scope}); |
| |
| TopologyManager.fromJson(core.Map json_) |
| : this( |
| policy: json_['policy'] as core.String?, |
| scope: json_['scope'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final policy = this.policy; |
| final scope = this.scope; |
| return {'policy': ?policy, 'scope': ?scope}; |
| } |
| } |
| |
| /// UpdateClusterRequest updates the settings of a cluster. |
| class UpdateClusterRequest { |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The name (project, location, cluster) of the cluster to update. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// A description of the update. |
| /// |
| /// Required. |
| ClusterUpdate? update; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| UpdateClusterRequest({ |
| this.clusterId, |
| this.name, |
| this.projectId, |
| this.update, |
| this.zone, |
| }); |
| |
| UpdateClusterRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| update: json_.containsKey('update') |
| ? ClusterUpdate.fromJson( |
| json_['update'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final name = this.name; |
| final projectId = this.projectId; |
| final update = this.update; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'update': ?update, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// UpdateInfo contains resource (instance groups, etc), status and other |
| /// intermediate information relevant to a node pool upgrade. |
| class UpdateInfo { |
| /// Information of a blue-green upgrade. |
| BlueGreenInfo? blueGreenInfo; |
| |
| UpdateInfo({this.blueGreenInfo}); |
| |
| UpdateInfo.fromJson(core.Map json_) |
| : this( |
| blueGreenInfo: json_.containsKey('blueGreenInfo') |
| ? BlueGreenInfo.fromJson( |
| json_['blueGreenInfo'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final blueGreenInfo = this.blueGreenInfo; |
| return {'blueGreenInfo': ?blueGreenInfo}; |
| } |
| } |
| |
| /// UpdateMasterRequest updates the master of the cluster. |
| class UpdateMasterRequest { |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// The Kubernetes version to change the master to. |
| /// |
| /// Users may specify either explicit versions offered by Kubernetes Engine or |
| /// version aliases, which have the following behavior: - "latest": picks the |
| /// highest valid Kubernetes version - "1.X": picks the highest valid |
| /// patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid |
| /// gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit |
| /// Kubernetes version - "-": picks the default Kubernetes version |
| /// |
| /// Required. |
| core.String? masterVersion; |
| |
| /// The name (project, location, cluster) of the cluster to update. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * `. |
| core.String? name; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| UpdateMasterRequest({ |
| this.clusterId, |
| this.masterVersion, |
| this.name, |
| this.projectId, |
| this.zone, |
| }); |
| |
| UpdateMasterRequest.fromJson(core.Map json_) |
| : this( |
| clusterId: json_['clusterId'] as core.String?, |
| masterVersion: json_['masterVersion'] as core.String?, |
| name: json_['name'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final clusterId = this.clusterId; |
| final masterVersion = this.masterVersion; |
| final name = this.name; |
| final projectId = this.projectId; |
| final zone = this.zone; |
| return { |
| 'clusterId': ?clusterId, |
| 'masterVersion': ?masterVersion, |
| 'name': ?name, |
| 'projectId': ?projectId, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// UpdateNodePoolRequests update a node pool's image and/or version. |
| class UpdateNodePoolRequest { |
| /// A list of hardware accelerators to be attached to each node. |
| /// |
| /// See https://cloud.google.com/compute/docs/gpus for more information about |
| /// support for GPUs. |
| core.List<AcceleratorConfig>? accelerators; |
| |
| /// The desired boot disk config for nodes in the node pool. |
| /// |
| /// Initiates an upgrade operation that migrates the nodes in the node pool to |
| /// the specified boot disk config. |
| BootDisk? bootDisk; |
| |
| /// The name of the cluster to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? clusterId; |
| |
| /// Confidential nodes config. |
| /// |
| /// All the nodes in the node pool will be Confidential VM once enabled. |
| ConfidentialNodes? confidentialNodes; |
| |
| /// Consolidation delay defines duration after which the Cluster Autoscaler |
| /// can scale down underutilized nodes. |
| /// |
| /// If not set, nodes are scaled down by default behavior, i.e. according to |
| /// the chosen autoscaling profile. |
| core.String? consolidationDelay; |
| |
| /// The desired containerd config for nodes in the node pool. |
| /// |
| /// Initiates an upgrade operation that recreates the nodes with the new |
| /// config. |
| ContainerdConfig? containerdConfig; |
| |
| /// The desired disk size for nodes in the node pool specified in GB. |
| /// |
| /// The smallest allowed disk size is 10GB. Initiates an upgrade operation |
| /// that migrates the nodes in the node pool to the specified disk size. |
| /// |
| /// Optional. |
| core.String? diskSizeGb; |
| |
| /// The desired disk type (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') for |
| /// nodes in the node pool. |
| /// |
| /// Initiates an upgrade operation that migrates the nodes in the node pool to |
| /// the specified disk type. |
| /// |
| /// Optional. |
| core.String? diskType; |
| |
| /// The current etag of the node pool. |
| /// |
| /// If an etag is provided and does not match the current etag of the node |
| /// pool, update will be blocked and an ABORTED error will be returned. |
| core.String? etag; |
| |
| /// Enable or disable NCCL fast socket for the node pool. |
| FastSocket? fastSocket; |
| |
| /// Flex Start flag for enabling Flex Start VM. |
| core.bool? flexStart; |
| |
| /// GCFS config. |
| GcfsConfig? gcfsConfig; |
| |
| /// Enable or disable gvnic on the node pool. |
| VirtualNIC? gvnic; |
| |
| /// The desired image type for the node pool. |
| /// |
| /// Please see |
| /// https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for |
| /// available image types. |
| /// |
| /// Required. |
| core.String? imageType; |
| |
| /// Node kubelet configs. |
| NodeKubeletConfig? kubeletConfig; |
| |
| /// The desired node labels to be applied to all nodes in the node pool. |
| /// |
| /// If this field is not present, the labels will not be changed. Otherwise, |
| /// the existing node labels will be *replaced* with the provided labels. |
| NodeLabels? labels; |
| |
| /// Parameters that can be configured on Linux nodes. |
| LinuxNodeConfig? linuxNodeConfig; |
| |
| /// The desired list of Google Compute Engine |
| /// [zones](https://cloud.google.com/compute/docs/zones#available) in which |
| /// the node pool's nodes should be located. |
| /// |
| /// Changing the locations for a node pool will result in nodes being either |
| /// created or removed from the node pool, depending on whether locations are |
| /// being added or removed. Warning: It is recommended to update node pool |
| /// locations in a standalone API call. Do not combine a location update with |
| /// changes to other fields (such as `tags`, `labels`, `taints`, etc.) in the |
| /// same request. Otherwise, the API performs a structural modification where |
| /// changes to other fields will only apply to newly created nodes and will |
| /// not be applied to existing nodes in the node pool. To ensure all nodes are |
| /// updated consistently, use a separate API call for location changes. |
| core.List<core.String>? locations; |
| |
| /// Logging configuration. |
| NodePoolLoggingConfig? loggingConfig; |
| |
| /// The desired |
| /// [Google Compute Engine machine type](https://cloud.google.com/compute/docs/machine-types) |
| /// for nodes in the node pool. |
| /// |
| /// Initiates an upgrade operation that migrates the nodes in the node pool to |
| /// the specified machine type. |
| /// |
| /// Optional. |
| core.String? machineType; |
| |
| /// The maximum duration for the nodes to exist. |
| /// |
| /// If unspecified, the nodes can exist indefinitely. |
| core.String? maxRunDuration; |
| |
| /// The name (project, location, cluster, node pool) of the node pool to |
| /// update. |
| /// |
| /// Specified in the format `projects / * /locations / * /clusters / * |
| /// /nodePools / * `. |
| core.String? name; |
| |
| /// The desired node drain configuration for nodes in the node pool. |
| NodeDrainConfig? nodeDrainConfig; |
| |
| /// Node network config. |
| NodeNetworkConfig? nodeNetworkConfig; |
| |
| /// The name of the node pool to upgrade. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? nodePoolId; |
| |
| /// The Kubernetes version to change the nodes to (typically an upgrade). |
| /// |
| /// Users may specify either explicit versions offered by Kubernetes Engine or |
| /// version aliases, which have the following behavior: - "latest": picks the |
| /// highest valid Kubernetes version - "1.X": picks the highest valid |
| /// patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid |
| /// gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit |
| /// Kubernetes version - "-": picks the Kubernetes master version |
| /// |
| /// Required. |
| core.String? nodeVersion; |
| |
| /// The Google Developers Console |
| /// [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? projectId; |
| |
| /// Specifies the configuration of queued provisioning. |
| QueuedProvisioning? queuedProvisioning; |
| |
| /// The resource labels for the node pool to use to annotate any related |
| /// Google Compute Engine resources. |
| ResourceLabels? resourceLabels; |
| |
| /// Desired resource manager tag keys and values to be attached to the nodes |
| /// for managing Compute Engine firewalls using Network Firewall Policies. |
| /// |
| /// Existing tags will be replaced with new values. |
| ResourceManagerTags? resourceManagerTags; |
| |
| /// List of Storage Pools where boot disks are provisioned. |
| /// |
| /// Existing Storage Pools will be replaced with storage-pools. |
| core.List<core.String>? storagePools; |
| |
| /// The desired network tags to be applied to all nodes in the node pool. |
| /// |
| /// If this field is not present, the tags will not be changed. Otherwise, the |
| /// existing network tags will be *replaced* with the provided tags. |
| NetworkTags? tags; |
| |
| /// The desired node taints to be applied to all nodes in the node pool. |
| /// |
| /// If this field is not present, the taints will not be changed. Otherwise, |
| /// the existing node taints will be *replaced* with the provided taints. |
| NodeTaints? taints; |
| |
| /// Upgrade settings control disruption and speed of the upgrade. |
| UpgradeSettings? upgradeSettings; |
| |
| /// Parameters that can be configured on Windows nodes. |
| WindowsNodeConfig? windowsNodeConfig; |
| |
| /// The desired workload metadata config for the node pool. |
| WorkloadMetadataConfig? workloadMetadataConfig; |
| |
| /// The name of the Google Compute Engine |
| /// [zone](https://cloud.google.com/compute/docs/zones#available) in which the |
| /// cluster resides. |
| /// |
| /// This field has been deprecated and replaced by the name field. |
| /// |
| /// Deprecated. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? zone; |
| |
| UpdateNodePoolRequest({ |
| this.accelerators, |
| this.bootDisk, |
| this.clusterId, |
| this.confidentialNodes, |
| this.consolidationDelay, |
| this.containerdConfig, |
| this.diskSizeGb, |
| this.diskType, |
| this.etag, |
| this.fastSocket, |
| this.flexStart, |
| this.gcfsConfig, |
| this.gvnic, |
| this.imageType, |
| this.kubeletConfig, |
| this.labels, |
| this.linuxNodeConfig, |
| this.locations, |
| this.loggingConfig, |
| this.machineType, |
| this.maxRunDuration, |
| this.name, |
| this.nodeDrainConfig, |
| this.nodeNetworkConfig, |
| this.nodePoolId, |
| this.nodeVersion, |
| this.projectId, |
| this.queuedProvisioning, |
| this.resourceLabels, |
| this.resourceManagerTags, |
| this.storagePools, |
| this.tags, |
| this.taints, |
| this.upgradeSettings, |
| this.windowsNodeConfig, |
| this.workloadMetadataConfig, |
| this.zone, |
| }); |
| |
| UpdateNodePoolRequest.fromJson(core.Map json_) |
| : this( |
| accelerators: (json_['accelerators'] as core.List?) |
| ?.map( |
| (value) => AcceleratorConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| bootDisk: json_.containsKey('bootDisk') |
| ? BootDisk.fromJson( |
| json_['bootDisk'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| clusterId: json_['clusterId'] as core.String?, |
| confidentialNodes: json_.containsKey('confidentialNodes') |
| ? ConfidentialNodes.fromJson( |
| json_['confidentialNodes'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| consolidationDelay: json_['consolidationDelay'] as core.String?, |
| containerdConfig: json_.containsKey('containerdConfig') |
| ? ContainerdConfig.fromJson( |
| json_['containerdConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| diskSizeGb: json_['diskSizeGb'] as core.String?, |
| diskType: json_['diskType'] as core.String?, |
| etag: json_['etag'] as core.String?, |
| fastSocket: json_.containsKey('fastSocket') |
| ? FastSocket.fromJson( |
| json_['fastSocket'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| flexStart: json_['flexStart'] as core.bool?, |
| gcfsConfig: json_.containsKey('gcfsConfig') |
| ? GcfsConfig.fromJson( |
| json_['gcfsConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| gvnic: json_.containsKey('gvnic') |
| ? VirtualNIC.fromJson( |
| json_['gvnic'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| imageType: json_['imageType'] as core.String?, |
| kubeletConfig: json_.containsKey('kubeletConfig') |
| ? NodeKubeletConfig.fromJson( |
| json_['kubeletConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| labels: json_.containsKey('labels') |
| ? NodeLabels.fromJson( |
| json_['labels'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| linuxNodeConfig: json_.containsKey('linuxNodeConfig') |
| ? LinuxNodeConfig.fromJson( |
| json_['linuxNodeConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| locations: (json_['locations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| loggingConfig: json_.containsKey('loggingConfig') |
| ? NodePoolLoggingConfig.fromJson( |
| json_['loggingConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| machineType: json_['machineType'] as core.String?, |
| maxRunDuration: json_['maxRunDuration'] as core.String?, |
| name: json_['name'] as core.String?, |
| nodeDrainConfig: json_.containsKey('nodeDrainConfig') |
| ? NodeDrainConfig.fromJson( |
| json_['nodeDrainConfig'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodeNetworkConfig: json_.containsKey('nodeNetworkConfig') |
| ? NodeNetworkConfig.fromJson( |
| json_['nodeNetworkConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| nodePoolId: json_['nodePoolId'] as core.String?, |
| nodeVersion: json_['nodeVersion'] as core.String?, |
| projectId: json_['projectId'] as core.String?, |
| queuedProvisioning: json_.containsKey('queuedProvisioning') |
| ? QueuedProvisioning.fromJson( |
| json_['queuedProvisioning'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| resourceLabels: json_.containsKey('resourceLabels') |
| ? ResourceLabels.fromJson( |
| json_['resourceLabels'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| resourceManagerTags: json_.containsKey('resourceManagerTags') |
| ? ResourceManagerTags.fromJson( |
| json_['resourceManagerTags'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| storagePools: (json_['storagePools'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| tags: json_.containsKey('tags') |
| ? NetworkTags.fromJson( |
| json_['tags'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| taints: json_.containsKey('taints') |
| ? NodeTaints.fromJson( |
| json_['taints'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| upgradeSettings: json_.containsKey('upgradeSettings') |
| ? UpgradeSettings.fromJson( |
| json_['upgradeSettings'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| windowsNodeConfig: json_.containsKey('windowsNodeConfig') |
| ? WindowsNodeConfig.fromJson( |
| json_['windowsNodeConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| workloadMetadataConfig: json_.containsKey('workloadMetadataConfig') |
| ? WorkloadMetadataConfig.fromJson( |
| json_['workloadMetadataConfig'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| zone: json_['zone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final accelerators = this.accelerators; |
| final bootDisk = this.bootDisk; |
| final clusterId = this.clusterId; |
| final confidentialNodes = this.confidentialNodes; |
| final consolidationDelay = this.consolidationDelay; |
| final containerdConfig = this.containerdConfig; |
| final diskSizeGb = this.diskSizeGb; |
| final diskType = this.diskType; |
| final etag = this.etag; |
| final fastSocket = this.fastSocket; |
| final flexStart = this.flexStart; |
| final gcfsConfig = this.gcfsConfig; |
| final gvnic = this.gvnic; |
| final imageType = this.imageType; |
| final kubeletConfig = this.kubeletConfig; |
| final labels = this.labels; |
| final linuxNodeConfig = this.linuxNodeConfig; |
| final locations = this.locations; |
| final loggingConfig = this.loggingConfig; |
| final machineType = this.machineType; |
| final maxRunDuration = this.maxRunDuration; |
| final name = this.name; |
| final nodeDrainConfig = this.nodeDrainConfig; |
| final nodeNetworkConfig = this.nodeNetworkConfig; |
| final nodePoolId = this.nodePoolId; |
| final nodeVersion = this.nodeVersion; |
| final projectId = this.projectId; |
| final queuedProvisioning = this.queuedProvisioning; |
| final resourceLabels = this.resourceLabels; |
| final resourceManagerTags = this.resourceManagerTags; |
| final storagePools = this.storagePools; |
| final tags = this.tags; |
| final taints = this.taints; |
| final upgradeSettings = this.upgradeSettings; |
| final windowsNodeConfig = this.windowsNodeConfig; |
| final workloadMetadataConfig = this.workloadMetadataConfig; |
| final zone = this.zone; |
| return { |
| 'accelerators': ?accelerators, |
| 'bootDisk': ?bootDisk, |
| 'clusterId': ?clusterId, |
| 'confidentialNodes': ?confidentialNodes, |
| 'consolidationDelay': ?consolidationDelay, |
| 'containerdConfig': ?containerdConfig, |
| 'diskSizeGb': ?diskSizeGb, |
| 'diskType': ?diskType, |
| 'etag': ?etag, |
| 'fastSocket': ?fastSocket, |
| 'flexStart': ?flexStart, |
| 'gcfsConfig': ?gcfsConfig, |
| 'gvnic': ?gvnic, |
| 'imageType': ?imageType, |
| 'kubeletConfig': ?kubeletConfig, |
| 'labels': ?labels, |
| 'linuxNodeConfig': ?linuxNodeConfig, |
| 'locations': ?locations, |
| 'loggingConfig': ?loggingConfig, |
| 'machineType': ?machineType, |
| 'maxRunDuration': ?maxRunDuration, |
| 'name': ?name, |
| 'nodeDrainConfig': ?nodeDrainConfig, |
| 'nodeNetworkConfig': ?nodeNetworkConfig, |
| 'nodePoolId': ?nodePoolId, |
| 'nodeVersion': ?nodeVersion, |
| 'projectId': ?projectId, |
| 'queuedProvisioning': ?queuedProvisioning, |
| 'resourceLabels': ?resourceLabels, |
| 'resourceManagerTags': ?resourceManagerTags, |
| 'storagePools': ?storagePools, |
| 'tags': ?tags, |
| 'taints': ?taints, |
| 'upgradeSettings': ?upgradeSettings, |
| 'windowsNodeConfig': ?windowsNodeConfig, |
| 'workloadMetadataConfig': ?workloadMetadataConfig, |
| 'zone': ?zone, |
| }; |
| } |
| } |
| |
| /// UpgradeDetails contains detailed information of each individual upgrade |
| /// operation. |
| class UpgradeDetails { |
| /// The end timestamp of the upgrade. |
| core.String? endTime; |
| |
| /// The version before the upgrade. |
| core.String? initialVersion; |
| |
| /// The start timestamp of the upgrade. |
| core.String? startTime; |
| |
| /// The start type of the upgrade. |
| /// Possible string values are: |
| /// - "START_TYPE_UNSPECIFIED" : Upgrade start type is unspecified. |
| /// - "AUTOMATIC" : Upgrade started automatically. |
| /// - "MANUAL" : Upgrade started manually. |
| core.String? startType; |
| |
| /// The state of the upgrade. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "UNKNOWN" : Upgrade state is unknown. |
| /// - "FAILED" : Upgrade has failed with an error. |
| /// - "SUCCEEDED" : Upgrade has succeeded. |
| /// - "CANCELED" : Upgrade has been canceled. |
| /// - "RUNNING" : Upgrade is running. |
| core.String? state; |
| |
| /// The version after the upgrade. |
| core.String? targetVersion; |
| |
| UpgradeDetails({ |
| this.endTime, |
| this.initialVersion, |
| this.startTime, |
| this.startType, |
| this.state, |
| this.targetVersion, |
| }); |
| |
| UpgradeDetails.fromJson(core.Map json_) |
| : this( |
| endTime: json_['endTime'] as core.String?, |
| initialVersion: json_['initialVersion'] as core.String?, |
| startTime: json_['startTime'] as core.String?, |
| startType: json_['startType'] as core.String?, |
| state: json_['state'] as core.String?, |
| targetVersion: json_['targetVersion'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final endTime = this.endTime; |
| final initialVersion = this.initialVersion; |
| final startTime = this.startTime; |
| final startType = this.startType; |
| final state = this.state; |
| final targetVersion = this.targetVersion; |
| return { |
| 'endTime': ?endTime, |
| 'initialVersion': ?initialVersion, |
| 'startTime': ?startTime, |
| 'startType': ?startType, |
| 'state': ?state, |
| 'targetVersion': ?targetVersion, |
| }; |
| } |
| } |
| |
| /// These upgrade settings control the level of parallelism and the level of |
| /// disruption caused by an upgrade. |
| /// |
| /// maxUnavailable controls the number of nodes that can be simultaneously |
| /// unavailable. maxSurge controls the number of additional nodes that can be |
| /// added to the node pool temporarily for the time of the upgrade to increase |
| /// the number of available nodes. (maxUnavailable + maxSurge) determines the |
| /// level of parallelism (how many nodes are being upgraded at the same time). |
| /// Note: upgrades inevitably introduce some disruption since workloads need to |
| /// be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, |
| /// this holds true. (Disruption stays within the limits of PodDisruptionBudget, |
| /// if it is configured.) Consider a hypothetical node pool with 5 nodes having |
| /// maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 |
| /// nodes simultaneously. It creates 2 additional (upgraded) nodes, then it |
| /// brings down 3 old (not yet upgraded) nodes at the same time. This ensures |
| /// that there are always at least 4 nodes available. These upgrade settings |
| /// configure the upgrade strategy for the node pool. Use strategy to switch |
| /// between the strategies applied to the node pool. If the strategy is ROLLING, |
| /// use max_surge and max_unavailable to control the level of parallelism and |
| /// the level of disruption caused by upgrade. 1. maxSurge controls the number |
| /// of additional nodes that can be added to the node pool temporarily for the |
| /// time of the upgrade to increase the number of available nodes. 2. |
| /// maxUnavailable controls the number of nodes that can be simultaneously |
| /// unavailable. 3. (maxUnavailable + maxSurge) determines the level of |
| /// parallelism (how many nodes are being upgraded at the same time). If the |
| /// strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green |
| /// upgrade related settings. 1. standard_rollout_policy is the default policy. |
| /// The policy is used to control the way blue pool gets drained. The draining |
| /// is executed in the batch mode. The batch size could be specified as either |
| /// percentage of the node pool size or the number of nodes. batch_soak_duration |
| /// is the soak time after each batch gets drained. 2. node_pool_soak_duration |
| /// is the soak time after all blue nodes are drained. After this period, the |
| /// blue pool nodes will be deleted. |
| class UpgradeSettings { |
| /// Settings for blue-green upgrade strategy. |
| BlueGreenSettings? blueGreenSettings; |
| |
| /// The maximum number of nodes that can be created beyond the current size of |
| /// the node pool during the upgrade process. |
| core.int? maxSurge; |
| |
| /// The maximum number of nodes that can be simultaneously unavailable during |
| /// the upgrade process. |
| /// |
| /// A node is considered available if its status is Ready. |
| core.int? maxUnavailable; |
| |
| /// Update strategy of the node pool. |
| /// Possible string values are: |
| /// - "NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED" : Default value if unset. GKE |
| /// internally defaults the update strategy to SURGE for unspecified |
| /// strategies. |
| /// - "BLUE_GREEN" : blue-green upgrade. |
| /// - "SURGE" : SURGE is the traditional way of upgrade a node pool. max_surge |
| /// and max_unavailable determines the level of upgrade parallelism. |
| /// - "SHORT_LIVED" : SHORT_LIVED is the dedicated upgrade strategy for |
| /// QueuedProvisioning and flex start node pools scaled up only by enqueueing |
| /// to the Dynamic Workload Scheduler (DWS). |
| core.String? strategy; |
| |
| UpgradeSettings({ |
| this.blueGreenSettings, |
| this.maxSurge, |
| this.maxUnavailable, |
| this.strategy, |
| }); |
| |
| UpgradeSettings.fromJson(core.Map json_) |
| : this( |
| blueGreenSettings: json_.containsKey('blueGreenSettings') |
| ? BlueGreenSettings.fromJson( |
| json_['blueGreenSettings'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| maxSurge: json_['maxSurge'] as core.int?, |
| maxUnavailable: json_['maxUnavailable'] as core.int?, |
| strategy: json_['strategy'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final blueGreenSettings = this.blueGreenSettings; |
| final maxSurge = this.maxSurge; |
| final maxUnavailable = this.maxUnavailable; |
| final strategy = this.strategy; |
| return { |
| 'blueGreenSettings': ?blueGreenSettings, |
| 'maxSurge': ?maxSurge, |
| 'maxUnavailable': ?maxUnavailable, |
| 'strategy': ?strategy, |
| }; |
| } |
| } |
| |
| /// UsableSubnetwork resource returns the subnetwork name, its associated |
| /// network and the primary CIDR range. |
| class UsableSubnetwork { |
| /// The range of internal addresses that are owned by this subnetwork. |
| core.String? ipCidrRange; |
| |
| /// Network Name. |
| /// |
| /// Example: projects/my-project/global/networks/my-network |
| core.String? network; |
| |
| /// Secondary IP ranges. |
| core.List<UsableSubnetworkSecondaryRange>? secondaryIpRanges; |
| |
| /// A human readable status message representing the reasons for cases where |
| /// the caller cannot use the secondary ranges under the subnet. |
| /// |
| /// For example if the secondary_ip_ranges is empty due to a permission issue, |
| /// an insufficient permission message will be given by status_message. |
| core.String? statusMessage; |
| |
| /// Subnetwork Name. |
| /// |
| /// Example: projects/my-project/regions/us-central1/subnetworks/my-subnet |
| core.String? subnetwork; |
| |
| UsableSubnetwork({ |
| this.ipCidrRange, |
| this.network, |
| this.secondaryIpRanges, |
| this.statusMessage, |
| this.subnetwork, |
| }); |
| |
| UsableSubnetwork.fromJson(core.Map json_) |
| : this( |
| ipCidrRange: json_['ipCidrRange'] as core.String?, |
| network: json_['network'] as core.String?, |
| secondaryIpRanges: (json_['secondaryIpRanges'] as core.List?) |
| ?.map( |
| (value) => UsableSubnetworkSecondaryRange.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| statusMessage: json_['statusMessage'] as core.String?, |
| subnetwork: json_['subnetwork'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final ipCidrRange = this.ipCidrRange; |
| final network = this.network; |
| final secondaryIpRanges = this.secondaryIpRanges; |
| final statusMessage = this.statusMessage; |
| final subnetwork = this.subnetwork; |
| return { |
| 'ipCidrRange': ?ipCidrRange, |
| 'network': ?network, |
| 'secondaryIpRanges': ?secondaryIpRanges, |
| 'statusMessage': ?statusMessage, |
| 'subnetwork': ?subnetwork, |
| }; |
| } |
| } |
| |
| /// Secondary IP range of a usable subnetwork. |
| class UsableSubnetworkSecondaryRange { |
| /// The range of IP addresses belonging to this subnetwork secondary range. |
| core.String? ipCidrRange; |
| |
| /// The name associated with this subnetwork secondary range, used when adding |
| /// an alias IP range to a VM instance. |
| core.String? rangeName; |
| |
| /// This field is to determine the status of the secondary range programmably. |
| /// Possible string values are: |
| /// - "UNKNOWN" : UNKNOWN is the zero value of the Status enum. It's not a |
| /// valid status. |
| /// - "UNUSED" : UNUSED denotes that this range is unclaimed by any cluster. |
| /// - "IN_USE_SERVICE" : IN_USE_SERVICE denotes that this range is claimed by |
| /// cluster(s) for services. User-managed services range can be shared between |
| /// clusters within the same subnetwork. |
| /// - "IN_USE_SHAREABLE_POD" : IN_USE_SHAREABLE_POD denotes this range was |
| /// created by the network admin and is currently claimed by a cluster for |
| /// pods. It can only be used by other clusters as a pod range. |
| /// - "IN_USE_MANAGED_POD" : IN_USE_MANAGED_POD denotes this range was created |
| /// by GKE and is claimed for pods. It cannot be used for other clusters. |
| core.String? status; |
| |
| UsableSubnetworkSecondaryRange({ |
| this.ipCidrRange, |
| this.rangeName, |
| this.status, |
| }); |
| |
| UsableSubnetworkSecondaryRange.fromJson(core.Map json_) |
| : this( |
| ipCidrRange: json_['ipCidrRange'] as core.String?, |
| rangeName: json_['rangeName'] as core.String?, |
| status: json_['status'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final ipCidrRange = this.ipCidrRange; |
| final rangeName = this.rangeName; |
| final status = this.status; |
| return { |
| 'ipCidrRange': ?ipCidrRange, |
| 'rangeName': ?rangeName, |
| 'status': ?status, |
| }; |
| } |
| } |
| |
| /// UserManagedKeysConfig holds the resource address to Keys which are used for |
| /// signing certs and token that are used for communication within cluster. |
| class UserManagedKeysConfig { |
| /// The Certificate Authority Service caPool to use for the aggregation CA in |
| /// this cluster. |
| core.String? aggregationCa; |
| |
| /// The Certificate Authority Service caPool to use for the cluster CA in this |
| /// cluster. |
| core.String? clusterCa; |
| |
| /// The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control |
| /// plane nodes. |
| core.String? controlPlaneDiskEncryptionKey; |
| |
| /// All of the versions of the Cloud KMS cryptoKey that are used by |
| /// Confidential Hyperdisks on the control plane nodes. |
| /// |
| /// Output only. |
| core.List<core.String>? controlPlaneDiskEncryptionKeyVersions; |
| |
| /// Resource path of the Certificate Authority Service caPool to use for the |
| /// etcd API CA in this cluster. |
| core.String? etcdApiCa; |
| |
| /// Resource path of the Certificate Authority Service caPool to use for the |
| /// etcd peer CA in this cluster. |
| core.String? etcdPeerCa; |
| |
| /// Resource path of the Cloud KMS cryptoKey to use for encryption of internal |
| /// etcd backups. |
| core.String? gkeopsEtcdBackupEncryptionKey; |
| |
| /// The Cloud KMS cryptoKeyVersions to use for signing service account JWTs |
| /// issued by this cluster. |
| /// |
| /// Format: |
| /// `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}` |
| core.List<core.String>? serviceAccountSigningKeys; |
| |
| /// The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs |
| /// issued by this cluster. |
| /// |
| /// Format: |
| /// `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}` |
| core.List<core.String>? serviceAccountVerificationKeys; |
| |
| UserManagedKeysConfig({ |
| this.aggregationCa, |
| this.clusterCa, |
| this.controlPlaneDiskEncryptionKey, |
| this.controlPlaneDiskEncryptionKeyVersions, |
| this.etcdApiCa, |
| this.etcdPeerCa, |
| this.gkeopsEtcdBackupEncryptionKey, |
| this.serviceAccountSigningKeys, |
| this.serviceAccountVerificationKeys, |
| }); |
| |
| UserManagedKeysConfig.fromJson(core.Map json_) |
| : this( |
| aggregationCa: json_['aggregationCa'] as core.String?, |
| clusterCa: json_['clusterCa'] as core.String?, |
| controlPlaneDiskEncryptionKey: |
| json_['controlPlaneDiskEncryptionKey'] as core.String?, |
| controlPlaneDiskEncryptionKeyVersions: |
| (json_['controlPlaneDiskEncryptionKeyVersions'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| etcdApiCa: json_['etcdApiCa'] as core.String?, |
| etcdPeerCa: json_['etcdPeerCa'] as core.String?, |
| gkeopsEtcdBackupEncryptionKey: |
| json_['gkeopsEtcdBackupEncryptionKey'] as core.String?, |
| serviceAccountSigningKeys: |
| (json_['serviceAccountSigningKeys'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| serviceAccountVerificationKeys: |
| (json_['serviceAccountVerificationKeys'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final aggregationCa = this.aggregationCa; |
| final clusterCa = this.clusterCa; |
| final controlPlaneDiskEncryptionKey = this.controlPlaneDiskEncryptionKey; |
| final controlPlaneDiskEncryptionKeyVersions = |
| this.controlPlaneDiskEncryptionKeyVersions; |
| final etcdApiCa = this.etcdApiCa; |
| final etcdPeerCa = this.etcdPeerCa; |
| final gkeopsEtcdBackupEncryptionKey = this.gkeopsEtcdBackupEncryptionKey; |
| final serviceAccountSigningKeys = this.serviceAccountSigningKeys; |
| final serviceAccountVerificationKeys = this.serviceAccountVerificationKeys; |
| return { |
| 'aggregationCa': ?aggregationCa, |
| 'clusterCa': ?clusterCa, |
| 'controlPlaneDiskEncryptionKey': ?controlPlaneDiskEncryptionKey, |
| 'controlPlaneDiskEncryptionKeyVersions': |
| ?controlPlaneDiskEncryptionKeyVersions, |
| 'etcdApiCa': ?etcdApiCa, |
| 'etcdPeerCa': ?etcdPeerCa, |
| 'gkeopsEtcdBackupEncryptionKey': ?gkeopsEtcdBackupEncryptionKey, |
| 'serviceAccountSigningKeys': ?serviceAccountSigningKeys, |
| 'serviceAccountVerificationKeys': ?serviceAccountVerificationKeys, |
| }; |
| } |
| } |
| |
| /// VerticalPodAutoscaling contains global, per-cluster information required by |
| /// Vertical Pod Autoscaler to automatically adjust the resources of pods |
| /// controlled by it. |
| class VerticalPodAutoscaling { |
| /// Enables vertical pod autoscaling. |
| core.bool? enabled; |
| |
| VerticalPodAutoscaling({this.enabled}); |
| |
| VerticalPodAutoscaling.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Configuration of gVNIC feature. |
| class VirtualNIC { |
| /// Whether gVNIC features are enabled in the node pool. |
| core.bool? enabled; |
| |
| VirtualNIC({this.enabled}); |
| |
| VirtualNIC.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |
| |
| /// Parameters that can be configured on Windows nodes. |
| /// |
| /// Windows Node Config that define the parameters that will be used to |
| /// configure the Windows node pool settings. |
| class WindowsNodeConfig { |
| /// OSVersion specifies the Windows node config to be used on the node. |
| /// Possible string values are: |
| /// - "OS_VERSION_UNSPECIFIED" : When OSVersion is not specified. |
| /// - "OS_VERSION_LTSC2019" : LTSC2019 specifies to use LTSC2019 as the |
| /// Windows Servercore Base Image. |
| /// - "OS_VERSION_LTSC2022" : LTSC2022 specifies to use LTSC2022 as the |
| /// Windows Servercore Base Image. |
| core.String? osVersion; |
| |
| WindowsNodeConfig({this.osVersion}); |
| |
| WindowsNodeConfig.fromJson(core.Map json_) |
| : this(osVersion: json_['osVersion'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final osVersion = this.osVersion; |
| return {'osVersion': ?osVersion}; |
| } |
| } |
| |
| /// Configuration for the use of Kubernetes Service Accounts in IAM policies. |
| class WorkloadIdentityConfig { |
| /// The workload pool to attach all Kubernetes service accounts to. |
| core.String? workloadPool; |
| |
| WorkloadIdentityConfig({this.workloadPool}); |
| |
| WorkloadIdentityConfig.fromJson(core.Map json_) |
| : this(workloadPool: json_['workloadPool'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final workloadPool = this.workloadPool; |
| return {'workloadPool': ?workloadPool}; |
| } |
| } |
| |
| /// WorkloadMetadataConfig defines the metadata configuration to expose to |
| /// workloads on the node pool. |
| class WorkloadMetadataConfig { |
| /// Mode is the configuration for how to expose metadata to workloads running |
| /// on the node pool. |
| /// Possible string values are: |
| /// - "MODE_UNSPECIFIED" : Not set. |
| /// - "GCE_METADATA" : Expose all Compute Engine metadata to pods. |
| /// - "GKE_METADATA" : Run the GKE Metadata Server on this node. The GKE |
| /// Metadata Server exposes a metadata API to workloads that is compatible |
| /// with the V1 Compute Metadata APIs exposed by the Compute Engine and App |
| /// Engine Metadata Servers. This feature can only be enabled if Workload |
| /// Identity is enabled at the cluster level. |
| core.String? mode; |
| |
| WorkloadMetadataConfig({this.mode}); |
| |
| WorkloadMetadataConfig.fromJson(core.Map json_) |
| : this(mode: json_['mode'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final mode = this.mode; |
| return {'mode': ?mode}; |
| } |
| } |
| |
| /// WorkloadPolicyConfig is the configuration related to GCW workload policy |
| class WorkloadPolicyConfig { |
| /// If true, workloads can use NET_ADMIN capability. |
| core.bool? allowNetAdmin; |
| |
| /// If true, enables the GCW Auditor that audits workloads on standard |
| /// clusters. |
| core.bool? autopilotCompatibilityAuditingEnabled; |
| |
| WorkloadPolicyConfig({ |
| this.allowNetAdmin, |
| this.autopilotCompatibilityAuditingEnabled, |
| }); |
| |
| WorkloadPolicyConfig.fromJson(core.Map json_) |
| : this( |
| allowNetAdmin: json_['allowNetAdmin'] as core.bool?, |
| autopilotCompatibilityAuditingEnabled: |
| json_['autopilotCompatibilityAuditingEnabled'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final allowNetAdmin = this.allowNetAdmin; |
| final autopilotCompatibilityAuditingEnabled = |
| this.autopilotCompatibilityAuditingEnabled; |
| return { |
| 'allowNetAdmin': ?allowNetAdmin, |
| 'autopilotCompatibilityAuditingEnabled': |
| ?autopilotCompatibilityAuditingEnabled, |
| }; |
| } |
| } |
| |
| /// Defines writable cgroups configuration. |
| class WritableCgroups { |
| /// Whether writable cgroups is enabled. |
| /// |
| /// Optional. |
| core.bool? enabled; |
| |
| WritableCgroups({this.enabled}); |
| |
| WritableCgroups.fromJson(core.Map json_) |
| : this(enabled: json_['enabled'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final enabled = this.enabled; |
| return {'enabled': ?enabled}; |
| } |
| } |