UNPKG

googleapis

Version:
1,125 lines 298 kB
/// <reference types="node" /> import { OAuth2Client, JWT, Compute, UserRefreshClient, BaseExternalAccountClient, GaxiosPromise, GoogleConfigurable, MethodOptions, StreamMethodOptions, GlobalOptions, GoogleAuth, BodyResponseCallback, APIRequestContext } from 'googleapis-common'; import { Readable } from 'stream'; export declare namespace gkeonprem_v1 { export interface Options extends GlobalOptions { version: 'v1'; } interface StandardParameters { /** * Auth client or API Key for the request */ auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient | BaseExternalAccountClient | GoogleAuth; /** * V1 error format. */ '$.xgafv'?: string; /** * OAuth access token. */ access_token?: string; /** * Data format for response. */ alt?: string; /** * JSONP */ callback?: string; /** * Selector specifying which fields to include in a partial response. */ fields?: string; /** * API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */ key?: string; /** * OAuth 2.0 token for the current user. */ oauth_token?: string; /** * Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** * Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. */ quotaUser?: string; /** * Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** * Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; } /** * Anthos On-Prem API * * * * @example * ```js * const {google} = require('googleapis'); * const gkeonprem = google.gkeonprem('v1'); * ``` */ export class Gkeonprem { context: APIRequestContext; projects: Resource$Projects; constructor(options: GlobalOptions, google?: GoogleConfigurable); } /** * Authorization defines the On-Prem cluster authorization configuration to bootstrap onto the admin cluster. */ export interface Schema$Authorization { /** * Required. For VMware and bare metal user clusters, users will be granted the cluster-admin role on the cluster, which provides full administrative access to the cluster. For bare metal admin clusters, users will be granted the cluster-view role, which limits users to read-only access. */ adminUsers?: Schema$ClusterUser[]; } /** * BareMetalAdminApiServerArgument represents an arg name-\>value pair. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ */ export interface Schema$BareMetalAdminApiServerArgument { /** * Required. The argument name as it appears on the API Server command line please make sure to remove the leading dashes. */ argument?: string | null; /** * Required. The value of the arg as it will be passed to the API Server command line. */ value?: string | null; } /** * ## Resource that represents a bare metal admin cluster. */ export interface Schema$BareMetalAdminCluster { /** * Annotations on the bare metal admin cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. */ annotations?: { [key: string]: string; } | null; /** * The Anthos clusters on bare metal version for the bare metal admin cluster. */ bareMetalVersion?: string | null; /** * Cluster operations configuration. */ clusterOperations?: Schema$BareMetalAdminClusterOperationsConfig; /** * Control plane configuration. */ controlPlane?: Schema$BareMetalAdminControlPlaneConfig; /** * Output only. The time at which this bare metal admin cluster was created. */ createTime?: string | null; /** * Output only. The time at which this bare metal admin cluster was deleted. If the resource is not deleted, this must be empty */ deleteTime?: string | null; /** * A human readable description of this bare metal admin cluster. */ description?: string | null; /** * Output only. The IP address name of bare metal admin cluster's API server. */ endpoint?: string | null; /** * This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control. */ etag?: string | null; /** * Output only. Fleet configuration for the cluster. */ fleet?: Schema$Fleet; /** * Load balancer configuration. */ loadBalancer?: Schema$BareMetalAdminLoadBalancerConfig; /** * Output only. The object name of the bare metal cluster custom resource. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster name and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs. */ localName?: string | null; /** * Maintenance configuration. */ maintenanceConfig?: Schema$BareMetalAdminMaintenanceConfig; /** * Output only. MaintenanceStatus representing state of maintenance. */ maintenanceStatus?: Schema$BareMetalAdminMaintenanceStatus; /** * Immutable. The bare metal admin cluster resource name. */ name?: string | null; /** * Network configuration. */ networkConfig?: Schema$BareMetalAdminNetworkConfig; /** * Node access related configurations. */ nodeAccessConfig?: Schema$BareMetalAdminNodeAccessConfig; /** * Workload node configuration. */ nodeConfig?: Schema$BareMetalAdminWorkloadNodeConfig; /** * OS environment related configurations. */ osEnvironmentConfig?: Schema$BareMetalAdminOsEnvironmentConfig; /** * Proxy configuration. */ proxy?: Schema$BareMetalAdminProxyConfig; /** * Output only. If set, there are currently changes in flight to the bare metal Admin Cluster. */ reconciling?: boolean | null; /** * Security related configuration. */ securityConfig?: Schema$BareMetalAdminSecurityConfig; /** * Output only. The current state of the bare metal admin cluster. */ state?: string | null; /** * Output only. ResourceStatus representing detailed cluster status. */ status?: Schema$ResourceStatus; /** * Storage configuration. */ storage?: Schema$BareMetalAdminStorageConfig; /** * Output only. The unique identifier of the bare metal admin cluster. */ uid?: string | null; /** * Output only. The time at which this bare metal admin cluster was last updated. */ updateTime?: string | null; /** * Output only. ValidationCheck representing the result of the preflight check. */ validationCheck?: Schema$ValidationCheck; } /** * BareMetalAdminClusterOperationsConfig specifies the admin cluster's observability infrastructure. */ export interface Schema$BareMetalAdminClusterOperationsConfig { /** * Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics). */ enableApplicationLogs?: boolean | null; } /** * BareMetalAdminControlPlaneConfig specifies the control plane configuration. */ export interface Schema$BareMetalAdminControlPlaneConfig { /** * Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ */ apiServerArgs?: Schema$BareMetalAdminApiServerArgument[]; /** * Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster. */ controlPlaneNodePoolConfig?: Schema$BareMetalAdminControlPlaneNodePoolConfig; } /** * BareMetalAdminControlPlaneNodePoolConfig specifies the control plane node pool configuration. We have a control plane specific node pool config so that we can flexible about supporting control plane specific fields in the future. */ export interface Schema$BareMetalAdminControlPlaneNodePoolConfig { /** * The generic configuration for a node pool running the control plane. */ nodePoolConfig?: Schema$BareMetalNodePoolConfig; } /** * BareMetalAdminDrainedMachine represents the machines that are drained. */ export interface Schema$BareMetalAdminDrainedMachine { /** * Drained machine IP address. */ nodeIp?: string | null; } /** * BareMetalAdminDrainingMachine represents the machines that are currently draining. */ export interface Schema$BareMetalAdminDrainingMachine { /** * Draining machine IP address. */ nodeIp?: string | null; /** * The count of pods yet to drain. */ podCount?: number | null; } /** * BareMetalAdminIslandModeCidrConfig specifies the cluster CIDR configuration while running in island mode. */ export interface Schema$BareMetalAdminIslandModeCidrConfig { /** * Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation. */ podAddressCidrBlocks?: string[] | null; /** * Required. All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation. */ serviceAddressCidrBlocks?: string[] | null; } /** * BareMetalAdminLoadBalancerConfig specifies the load balancer configuration. */ export interface Schema$BareMetalAdminLoadBalancerConfig { /** * Manually configured load balancers. */ manualLbConfig?: Schema$BareMetalAdminManualLbConfig; /** * Configures the ports that the load balancer will listen on. */ portConfig?: Schema$BareMetalAdminPortConfig; /** * The VIPs used by the load balancer. */ vipConfig?: Schema$BareMetalAdminVipConfig; } /** * BareMetalAdminMachineDrainStatus represents the status of bare metal node machines that are undergoing drain operations. */ export interface Schema$BareMetalAdminMachineDrainStatus { /** * The list of drained machines. */ drainedMachines?: Schema$BareMetalAdminDrainedMachine[]; /** * The list of draning machines. */ drainingMachines?: Schema$BareMetalAdminDrainingMachine[]; } /** * BareMetalAdminMaintenanceConfig specifies configurations to put bare metal Admin cluster CRs nodes in and out of maintenance. */ export interface Schema$BareMetalAdminMaintenanceConfig { /** * Required. All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource. */ maintenanceAddressCidrBlocks?: string[] | null; } /** * BareMetalAdminMaintenanceStatus represents the maintenance status for bare metal Admin cluster CR's nodes. */ export interface Schema$BareMetalAdminMaintenanceStatus { /** * Represents the status of draining and drained machine nodes. This is used to show the progress of cluster upgrade. */ machineDrainStatus?: Schema$BareMetalAdminMachineDrainStatus; } /** * BareMetalAdminManualLbConfig represents configuration parameters for a manual load balancer. */ export interface Schema$BareMetalAdminManualLbConfig { /** * Whether manual load balancing is enabled. */ enabled?: boolean | null; } /** * BareMetalAdminNetworkConfig specifies the cluster network configuration. */ export interface Schema$BareMetalAdminNetworkConfig { /** * Configuration for Island mode CIDR. */ islandModeCidr?: Schema$BareMetalAdminIslandModeCidrConfig; } /** * Specifies the node access related settings for the bare metal admin cluster. */ export interface Schema$BareMetalAdminNodeAccessConfig { /** * Required. LoginUser is the user name used to access node machines. It defaults to "root" if not set. */ loginUser?: string | null; } /** * Specifies operating system operation settings for cluster provisioning. */ export interface Schema$BareMetalAdminOsEnvironmentConfig { /** * Whether the package repo should be added when initializing bare metal machines. */ packageRepoExcluded?: boolean | null; } /** * BareMetalAdminPortConfig is the specification of load balancer ports. */ export interface Schema$BareMetalAdminPortConfig { /** * The port that control plane hosted load balancers will listen on. */ controlPlaneLoadBalancerPort?: number | null; } /** * BareMetalAdminProxyConfig specifies the cluster proxy configuration. */ export interface Schema$BareMetalAdminProxyConfig { /** * A list of IPs, hostnames, and domains that should skip the proxy. Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. */ noProxy?: string[] | null; /** * Required. Specifies the address of your proxy server. Examples: `http://domain` WARNING: Do not provide credentials in the format `http://(username:password@)domain` these will be rejected by the server. */ uri?: string | null; } /** * Specifies the security related settings for the bare metal admin cluster. */ export interface Schema$BareMetalAdminSecurityConfig { /** * Configures user access to the admin cluster. */ authorization?: Schema$Authorization; } /** * BareMetalAdminStorageConfig specifies the cluster storage configuration. */ export interface Schema$BareMetalAdminStorageConfig { /** * Required. Specifies the config for local PersistentVolumes backed by mounted node disks. These disks need to be formatted and mounted by the user, which can be done before or after cluster creation. */ lvpNodeMountsConfig?: Schema$BareMetalLvpConfig; /** * Required. Specifies the config for local PersistentVolumes backed by subdirectories in a shared filesystem. These subdirectores are automatically created during cluster creation. */ lvpShareConfig?: Schema$BareMetalLvpShareConfig; } /** * BareMetalAdminVipConfig for bare metal load balancer configurations. */ export interface Schema$BareMetalAdminVipConfig { /** * The VIP which you previously set aside for the Kubernetes API of this bare metal admin cluster. */ controlPlaneVip?: string | null; } /** * BareMetalAdminWorkloadNodeConfig specifies the workload node configurations. */ export interface Schema$BareMetalAdminWorkloadNodeConfig { /** * The maximum number of pods a node can run. The size of the CIDR range assigned to the node will be derived from this parameter. By default 110 Pods are created per Node. Upper bound is 250 for both HA and non-HA admin cluster. Lower bound is 64 for non-HA admin cluster and 32 for HA admin cluster. */ maxPodsPerNode?: string | null; } /** * Represents an arg name-\>value pair. Only a subset of customized flags are supported. For the exact format, refer to the [API server documentation](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/). */ export interface Schema$BareMetalApiServerArgument { /** * Required. The argument name as it appears on the API Server command line, make sure to remove the leading dashes. */ argument?: string | null; /** * Required. The value of the arg as it will be passed to the API Server command line. */ value?: string | null; } /** * BareMetalBgpLbConfig represents configuration parameters for a Border Gateway Protocol (BGP) load balancer. */ export interface Schema$BareMetalBgpLbConfig { /** * Required. AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. */ addressPools?: Schema$BareMetalLoadBalancerAddressPool[]; /** * Required. BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation. */ asn?: string | null; /** * Required. The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation. */ bgpPeerConfigs?: Schema$BareMetalBgpPeerConfig[]; /** * Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing. */ loadBalancerNodePoolConfig?: Schema$BareMetalLoadBalancerNodePoolConfig; } /** * BareMetalBgpPeerConfig represents configuration parameters for a Border Gateway Protocol (BGP) peer. */ export interface Schema$BareMetalBgpPeerConfig { /** * Required. BGP autonomous system number (ASN) for the network that contains the external peer device. */ asn?: string | null; /** * The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions. */ controlPlaneNodes?: string[] | null; /** * Required. The IP address of the external peer device. */ ipAddress?: string | null; } /** * Resource that represents a bare metal user cluster. */ export interface Schema$BareMetalCluster { /** * Required. The admin cluster this bare metal user cluster belongs to. This is the full resource name of the admin cluster's fleet membership. */ adminClusterMembership?: string | null; /** * Output only. The resource name of the bare metal admin cluster managing this user cluster. */ adminClusterName?: string | null; /** * Annotations on the bare metal user cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. */ annotations?: { [key: string]: string; } | null; /** * Required. The Anthos clusters on bare metal version for your user cluster. */ bareMetalVersion?: string | null; /** * Cluster operations configuration. */ clusterOperations?: Schema$BareMetalClusterOperationsConfig; /** * Required. Control plane configuration. */ controlPlane?: Schema$BareMetalControlPlaneConfig; /** * Output only. The time when the bare metal user cluster was created. */ createTime?: string | null; /** * Output only. The time when the bare metal user cluster was deleted. If the resource is not deleted, this must be empty */ deleteTime?: string | null; /** * A human readable description of this bare metal user cluster. */ description?: string | null; /** * Output only. The IP address of the bare metal user cluster's API server. */ endpoint?: string | null; /** * Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control. */ etag?: string | null; /** * Output only. Fleet configuration for the cluster. */ fleet?: Schema$Fleet; /** * Required. Load balancer configuration. */ loadBalancer?: Schema$BareMetalLoadBalancerConfig; /** * Output only. The object name of the bare metal user cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the name in the resource name. For new clusters, this field will match the user provided cluster name and be visible in the last component of the resource name. It is not modifiable. When the local name and cluster name differ, the local name is used in the admin cluster controller logs. You use the cluster name when accessing the cluster using bmctl and kubectl. */ localName?: string | null; /** * Maintenance configuration. */ maintenanceConfig?: Schema$BareMetalMaintenanceConfig; /** * Output only. Status of on-going maintenance tasks. */ maintenanceStatus?: Schema$BareMetalMaintenanceStatus; /** * Immutable. The bare metal user cluster resource name. */ name?: string | null; /** * Required. Network configuration. */ networkConfig?: Schema$BareMetalNetworkConfig; /** * Node access related configurations. */ nodeAccessConfig?: Schema$BareMetalNodeAccessConfig; /** * Workload node configuration. */ nodeConfig?: Schema$BareMetalWorkloadNodeConfig; /** * OS environment related configurations. */ osEnvironmentConfig?: Schema$BareMetalOsEnvironmentConfig; /** * Proxy configuration. */ proxy?: Schema$BareMetalProxyConfig; /** * Output only. If set, there are currently changes in flight to the bare metal user cluster. */ reconciling?: boolean | null; /** * Security related setting configuration. */ securityConfig?: Schema$BareMetalSecurityConfig; /** * Output only. The current state of the bare metal user cluster. */ state?: string | null; /** * Output only. Detailed cluster status. */ status?: Schema$ResourceStatus; /** * Required. Storage configuration. */ storage?: Schema$BareMetalStorageConfig; /** * Output only. The unique identifier of the bare metal user cluster. */ uid?: string | null; /** * Output only. The time when the bare metal user cluster was last updated. */ updateTime?: string | null; /** * The cluster upgrade policy. */ upgradePolicy?: Schema$BareMetalClusterUpgradePolicy; /** * Output only. The result of the preflight check. */ validationCheck?: Schema$ValidationCheck; } /** * Specifies the bare metal user cluster's observability infrastructure. */ export interface Schema$BareMetalClusterOperationsConfig { /** * Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics). */ enableApplicationLogs?: boolean | null; } /** * BareMetalClusterUpgradePolicy defines the cluster upgrade policy. */ export interface Schema$BareMetalClusterUpgradePolicy { /** * Specifies which upgrade policy to use. */ policy?: string | null; } /** * Specifies the control plane configuration. */ export interface Schema$BareMetalControlPlaneConfig { /** * Customizes the default API server args. Only a subset of customized flags are supported. For the exact format, refer to the [API server documentation](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/). */ apiServerArgs?: Schema$BareMetalApiServerArgument[]; /** * Required. Configures the node pool running the control plane. */ controlPlaneNodePoolConfig?: Schema$BareMetalControlPlaneNodePoolConfig; } /** * Specifies the control plane node pool configuration. */ export interface Schema$BareMetalControlPlaneNodePoolConfig { /** * Required. The generic configuration for a node pool running the control plane. */ nodePoolConfig?: Schema$BareMetalNodePoolConfig; } /** * Represents a machine that is currently drained. */ export interface Schema$BareMetalDrainedMachine { /** * Drained machine IP address. */ nodeIp?: string | null; } /** * Represents a machine that is currently draining. */ export interface Schema$BareMetalDrainingMachine { /** * Draining machine IP address. */ nodeIp?: string | null; /** * The count of pods yet to drain. */ podCount?: number | null; } /** * Specifies the cluster CIDR configuration while running in island mode. */ export interface Schema$BareMetalIslandModeCidrConfig { /** * Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation. */ podAddressCidrBlocks?: string[] | null; /** * Required. All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field is mutable after creation starting with version 1.15. */ serviceAddressCidrBlocks?: string[] | null; } /** * KubeletConfig defines the modifiable kubelet configurations for bare metal machines. Note: this list includes fields supported in GKE (see https://cloud.google.com/kubernetes-engine/docs/how-to/node-system-config#kubelet-options). */ export interface Schema$BareMetalKubeletConfig { /** * The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10. */ registryBurst?: number | null; /** * The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5. */ registryPullQps?: number | null; /** * Prevents the Kubelet from pulling multiple images at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details. */ serializeImagePullsDisabled?: boolean | null; } /** * Represents an IP pool used by the load balancer. */ export interface Schema$BareMetalLoadBalancerAddressPool { /** * Required. The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5). */ addresses?: string[] | null; /** * If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses. */ avoidBuggyIps?: boolean | null; /** * If true, prevent IP addresses from being automatically assigned. */ manualAssign?: boolean | null; /** * Required. The name of the address pool. */ pool?: string | null; } /** * Specifies the load balancer configuration. */ export interface Schema$BareMetalLoadBalancerConfig { /** * Configuration for BGP typed load balancers. When set network_config.advanced_networking is automatically set to true. */ bgpLbConfig?: Schema$BareMetalBgpLbConfig; /** * Manually configured load balancers. */ manualLbConfig?: Schema$BareMetalManualLbConfig; /** * Configuration for MetalLB load balancers. */ metalLbConfig?: Schema$BareMetalMetalLbConfig; /** * Configures the ports that the load balancer will listen on. */ portConfig?: Schema$BareMetalPortConfig; /** * The VIPs used by the load balancer. */ vipConfig?: Schema$BareMetalVipConfig; } /** * Specifies the load balancer's node pool configuration. */ export interface Schema$BareMetalLoadBalancerNodePoolConfig { /** * The generic configuration for a node pool running a load balancer. */ nodePoolConfig?: Schema$BareMetalNodePoolConfig; } /** * Specifies the configs for local persistent volumes (PVs). */ export interface Schema$BareMetalLvpConfig { /** * Required. The host machine path. */ path?: string | null; /** * Required. The StorageClass name that PVs will be created with. */ storageClass?: string | null; } /** * Specifies the configs for local persistent volumes under a shared file system. */ export interface Schema$BareMetalLvpShareConfig { /** * Required. Defines the machine path and storage class for the LVP Share. */ lvpConfig?: Schema$BareMetalLvpConfig; /** * The number of subdirectories to create under path. */ sharedPathPvCount?: number | null; } /** * Represents the status of node machines that are undergoing drain operations. */ export interface Schema$BareMetalMachineDrainStatus { /** * The list of drained machines. */ drainedMachines?: Schema$BareMetalDrainedMachine[]; /** * The list of draning machines. */ drainingMachines?: Schema$BareMetalDrainingMachine[]; } /** * Specifies configurations to put bare metal nodes in and out of maintenance. */ export interface Schema$BareMetalMaintenanceConfig { /** * Required. All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set on the node resource. */ maintenanceAddressCidrBlocks?: string[] | null; } /** * Represents the maintenance status of the bare metal user cluster. */ export interface Schema$BareMetalMaintenanceStatus { /** * The maintenance status of node machines. */ machineDrainStatus?: Schema$BareMetalMachineDrainStatus; } /** * Represents configuration parameters for a manual load balancer. */ export interface Schema$BareMetalManualLbConfig { /** * Whether manual load balancing is enabled. */ enabled?: boolean | null; } /** * Represents configuration parameters for a MetalLB load balancer. */ export interface Schema$BareMetalMetalLbConfig { /** * Required. AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools. */ addressPools?: Schema$BareMetalLoadBalancerAddressPool[]; /** * Specifies the node pool running the load balancer. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used as the load balancer pool. */ loadBalancerNodePoolConfig?: Schema$BareMetalLoadBalancerNodePoolConfig; } /** * Specifies the multiple networking interfaces cluster configuration. */ export interface Schema$BareMetalMultipleNetworkInterfacesConfig { /** * Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true. */ enabled?: boolean | null; } /** * Specifies the cluster network configuration. */ export interface Schema$BareMetalNetworkConfig { /** * Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag. */ advancedNetworking?: boolean | null; /** * Configuration for island mode CIDR. In an island-mode network, nodes have unique IP addresses, but pods don't have unique addresses across clusters. This doesn't cause problems because pods in one cluster never directly communicate with pods in another cluster. Instead, there are gateways that mediate between a pod in one cluster and a pod in another cluster. */ islandModeCidr?: Schema$BareMetalIslandModeCidrConfig; /** * Configuration for multiple network interfaces. */ multipleNetworkInterfacesConfig?: Schema$BareMetalMultipleNetworkInterfacesConfig; /** * Configuration for SR-IOV. */ srIovConfig?: Schema$BareMetalSrIovConfig; } /** * Specifies the node access related settings for the bare metal user cluster. */ export interface Schema$BareMetalNodeAccessConfig { /** * LoginUser is the user name used to access node machines. It defaults to "root" if not set. */ loginUser?: string | null; } /** * BareMetalNodeConfig lists machine addresses to access Nodes. */ export interface Schema$BareMetalNodeConfig { /** * The labels assigned to this node. An object containing a list of key/value pairs. The labels here, unioned with the labels set on BareMetalNodePoolConfig are the set of labels that will be applied to the node. If there are any conflicts, the BareMetalNodeConfig labels take precedence. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" \}. */ labels?: { [key: string]: string; } | null; /** * The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 */ nodeIp?: string | null; } /** * Resource that represents a bare metal node pool. */ export interface Schema$BareMetalNodePool { /** * Annotations on the bare metal node pool. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between. */ annotations?: { [key: string]: string; } | null; /** * Output only. The time at which this bare metal node pool was created. */ createTime?: string | null; /** * Output only. The time at which this bare metal node pool was deleted. If the resource is not deleted, this must be empty */ deleteTime?: string | null; /** * The display name for the bare metal node pool. */ displayName?: string | null; /** * This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control. */ etag?: string | null; /** * Immutable. The bare metal node pool resource name. */ name?: string | null; /** * Required. Node pool configuration. */ nodePoolConfig?: Schema$BareMetalNodePoolConfig; /** * Output only. If set, there are currently changes in flight to the bare metal node pool. */ reconciling?: boolean | null; /** * Output only. The current state of the bare metal node pool. */ state?: string | null; /** * Output only. ResourceStatus representing the detailed node pool status. */ status?: Schema$ResourceStatus; /** * Output only. The unique identifier of the bare metal node pool. */ uid?: string | null; /** * Output only. The time at which this bare metal node pool was last updated. */ updateTime?: string | null; /** * The worker node pool upgrade policy. */ upgradePolicy?: Schema$BareMetalNodePoolUpgradePolicy; } /** * BareMetalNodePoolConfig describes the configuration of all nodes within a given bare metal node pool. */ export interface Schema$BareMetalNodePoolConfig { /** * The modifiable kubelet configurations for the bare metal machines. */ kubeletConfig?: Schema$BareMetalKubeletConfig; /** * The labels assigned to nodes of this node pool. An object containing a list of key/value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" \}. */ labels?: { [key: string]: string; } | null; /** * Required. The list of machine addresses in the bare metal node pool. */ nodeConfigs?: Schema$BareMetalNodeConfig[]; /** * Specifies the nodes operating system (default: LINUX). */ operatingSystem?: string | null; /** * The initial taints assigned to nodes of this node pool. */ taints?: Schema$NodeTaint[]; } /** * BareMetalNodePoolUpgradePolicy defines the node pool upgrade policy. */ export interface Schema$BareMetalNodePoolUpgradePolicy { /** * The parallel upgrade settings for worker node pools. */ parallelUpgradeConfig?: Schema$BareMetalParallelUpgradeConfig; } /** * Specifies operating system settings for cluster provisioning. */ export interface Schema$BareMetalOsEnvironmentConfig { /** * Whether the package repo should not be included when initializing bare metal machines. */ packageRepoExcluded?: boolean | null; } /** * BareMetalParallelUpgradeConfig defines the parallel upgrade settings for worker node pools. */ export interface Schema$BareMetalParallelUpgradeConfig { /** * The maximum number of nodes that can be upgraded at once. */ concurrentNodes?: number | null; /** * The minimum number of nodes that should be healthy and available during an upgrade. If set to the default value of 0, it is possible that none of the nodes will be available during an upgrade. */ minimumAvailableNodes?: number | null; } /** * Specifies load balancer ports for the bare metal user cluster. */ export interface Schema$BareMetalPortConfig { /** * The port that control plane hosted load balancers will listen on. */ controlPlaneLoadBalancerPort?: number | null; } /** * Specifies the cluster proxy configuration. */ export interface Schema$BareMetalProxyConfig { /** * A list of IPs, hostnames, and domains that should skip the proxy. Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. */ noProxy?: string[] | null; /** * Required. Specifies the address of your proxy server. Examples: `http://domain` Do not provide credentials in the format `http://(username:password@)domain` these will be rejected by the server. */ uri?: string | null; } /** * Specifies the security related settings for the bare metal user cluster. */ export interface Schema$BareMetalSecurityConfig { /** * Configures user access to the user cluster. */ authorization?: Schema$Authorization; } /** * Specifies the SR-IOV networking operator config. */ export interface Schema$BareMetalSrIovConfig { /** * Whether to install the SR-IOV operator. */ enabled?: boolean | null; } /** * BareMetalStorageConfig specifies the cluster storage configuration. */ export interface Schema$BareMetalStorageConfig { /** * Required. Specifies the config for local PersistentVolumes backed by mounted node disks. These disks need to be formatted and mounted by the user, which can be done before or after cluster creation. */ lvpNodeMountsConfig?: Schema$BareMetalLvpConfig; /** * Required. Specifies the config for local PersistentVolumes backed by subdirectories in a shared filesystem. These subdirectores are automatically created during cluster creation. */ lvpShareConfig?: Schema$BareMetalLvpShareConfig; } /** * Contains information about a specific Anthos on bare metal version. */ export interface Schema$BareMetalVersionInfo { /** * The list of upgrade dependencies for this version. */ dependencies?: Schema$UpgradeDependency[]; /** * If set, the cluster dependencies (e.g. the admin cluster, other user clusters managed by the same admin cluster, version skew policy, etc) must be upgraded before this version can be installed or upgraded to. */ hasDependencies?: boolean | null; /** * Version number e.g. 1.13.1. */ version?: string | null; } /** * Specifies the VIP config for the bare metal load balancer. */ export interface Schema$BareMetalVipConfig { /** * The VIP which you previously set aside for the Kubernetes API of this bare metal user cluster. */ controlPlaneVip?: string | null; /** * The VIP which you previously set aside for ingress traffic into this bare metal user cluster. */ ingressVip?: string | null; } /** * Specifies the workload node configurations. */ export interface Schema$BareMetalWorkloadNodeConfig { /** * Specifies which container runtime will be used. */ containerRuntime?: string | null; /** * The maximum number of pods a node can run. The size of the CIDR range assigned to the node will be derived from this parameter. */ maxPodsPerNode?: string | null; } /** * Associates `members`, or principals, with a `role`. */ export interface Schema$Binding { /** * The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). */ condition?: Schema$Expr; /** * Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid\}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid\}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid\}.svc.id.goog[{namespace\}/{kubernetes-sa\}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid\}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain\}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid\}?uid={uniqueid\}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid\}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid\}?uid={uniqueid\}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid\}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid\}?uid={uniqueid\}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid\}` and the recovered group retains the role in the binding. */ members?: string[] | null; /** * Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. */ role?: string | null; } /** * The request message for Operations.CancelOperation. */ export interface Schema$CancelOperationRequest { } /** * ClusterUser configures user princi