diff --git a/packages/google-container/README.md b/packages/google-container/README.md index 04e08fecd98..6a603da7223 100644 --- a/packages/google-container/README.md +++ b/packages/google-container/README.md @@ -108,6 +108,7 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | container | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-container/samples/generated/v1/snippet_metadata_google.container.v1.json) | | cancel operation | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-container/samples/generated/v1beta1/cluster_manager.cancel_operation.js) | | check autopilot compatibility | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-container/samples/generated/v1beta1/cluster_manager.check_autopilot_compatibility.js) | +| complete control plane upgrade | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-container/samples/generated/v1beta1/cluster_manager.complete_control_plane_upgrade.js) | | complete i p rotation | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-container/samples/generated/v1beta1/cluster_manager.complete_i_p_rotation.js) | | complete node pool upgrade | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-container/samples/generated/v1beta1/cluster_manager.complete_node_pool_upgrade.js) | | create cluster | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-container/samples/generated/v1beta1/cluster_manager.create_cluster.js) | diff --git a/packages/google-container/protos/google/container/v1/cluster_service.proto b/packages/google-container/protos/google/container/v1/cluster_service.proto index ba6730e70c2..e7cf8b31aa5 100644 --- a/packages/google-container/protos/google/container/v1/cluster_service.proto +++ b/packages/google-container/protos/google/container/v1/cluster_service.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -46,6 +46,10 @@ option (google.api.resource_definition) = { type: "cloudkms.googleapis.com/CryptoKeyVersion" pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" }; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Subnetwork" + pattern: "projects/{project}/regions/{region}/subnetworks/{subnetwork}" +}; // Google Kubernetes Engine Cluster Manager v1 service ClusterManager { @@ -622,6 +626,69 @@ message LinuxNodeConfig { TRANSPARENT_HUGEPAGE_DEFRAG_NEVER = 5; } + // Configuration for swap memory on a node pool. + message SwapConfig { + // Defines encryption settings for the swap space. + message EncryptionConfig { + // Optional. If true, swap space will not be encrypted. + // Defaults to false (encrypted). + optional bool disabled = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Swap on the node's boot disk. + message BootDiskProfile { + // Optional. Specifies the size of the swap space. If omitted, GKE + // determines an optimal size based on node memory. + oneof swap_size { + // Specifies the size of the swap space in gibibytes (GiB). + int64 swap_size_gib = 1; + + // Specifies the size of the swap space as a percentage of the boot disk + // size. + int32 swap_size_percent = 2; + } + } + + // Swap on the local SSD shared with pod ephemeral storage. + message EphemeralLocalSsdProfile { + // Specifies the size of the swap space to be provisioned. + oneof swap_size { + // Specifies the size of the swap space in gibibytes (GiB). + int64 swap_size_gib = 1; + + // Specifies the size of the swap space as a percentage of the ephemeral + // local SSD capacity. + int32 swap_size_percent = 2; + } + } + + // Provisions a new, separate local NVMe SSD exclusively for swap. + message DedicatedLocalSsdProfile { + // The number of physical local NVMe SSD disks to attach. + int64 disk_count = 1; + } + + // Optional. Enables or disables swap for the node pool. + optional bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If omitted, swap space is encrypted by default. + optional EncryptionConfig encryption_config = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the backing storage for the swap space. + // If omitted, defaults to the 'boot_disk_profile'. + oneof performance_profile { + // Swap on the node's boot disk. + BootDiskProfile boot_disk_profile = 3; + + // Swap on the local SSD shared with pod ephemeral storage. + EphemeralLocalSsdProfile ephemeral_local_ssd_profile = 4; + + // Provisions a new, separate local NVMe SSD exclusively for swap. + DedicatedLocalSsdProfile dedicated_local_ssd_profile = 5; + } + } + // Configuration for kernel module loading on nodes. message NodeKernelModuleLoading { // Defines the kernel module loading policy for nodes in the nodepool. @@ -669,7 +736,12 @@ message LinuxNodeConfig { // 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 @@ -679,14 +751,23 @@ message LinuxNodeConfig { // 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 @@ -724,6 +805,10 @@ message LinuxNodeConfig { TransparentHugepageDefrag transparent_hugepage_defrag = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enables and configures swap space on nodes. + // If omitted, swap is disabled. + optional SwapConfig swap_config = 12 [(google.api.field_behavior) = OPTIONAL]; + // Optional. 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. @@ -933,6 +1018,26 @@ message NodeKubeletConfig { // be OOM killed individually instead of as a group. optional bool single_process_oom_kill = 22 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 int32 shutdown_grace_period_seconds = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 int32 shutdown_grace_period_critical_pods_seconds = 27 + [(google.api.field_behavior) = OPTIONAL]; } // TopologyManager defines the configuration options for Topology Manager @@ -1379,6 +1484,9 @@ message NodeConfig { optional SecondaryBootDiskUpdateStrategy secondary_boot_disk_update_strategy = 50; + // The configuration for GPU Direct + optional GPUDirectConfig gpu_direct_config = 51; + // The maximum duration for the nodes to exist. // If unspecified, the nodes can exist indefinitely. google.protobuf.Duration max_run_duration = 53; @@ -1399,6 +1507,11 @@ message NodeConfig { // The boot disk configuration for the node pool. BootDisk boot_disk = 57; + + // 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. + google.protobuf.Duration consolidation_delay = 60; } // Specifies options for controlling advanced machine features. @@ -1525,12 +1638,21 @@ message NodeNetworkConfig { double pod_ipv4_range_utilization = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The subnetwork path for the node pool. + // Optional. 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 for - // the node pool is picked based on the IP utilization during node pool - // creation and is immutable. - string subnetwork = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + // If the cluster is associated with multiple subnetworks, the subnetwork can + // be either: + // 1. A user supplied subnetwork name/full path during node pool creation. + // Example1: my-subnet + // Example2: projects/gke-project/regions/us-central1/subnetworks/my-subnet + // 2. A subnetwork path picked based on the IP utilization during node pool + // creation and is immutable. + string subnetwork = 19 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "compute.googleapis.com/Subnetwork" + } + ]; // Output only. The network tier configuration for the node pool inherits from // the cluster-level configuration and remains immutable throughout the node @@ -1703,7 +1825,7 @@ message ContainerdConfig { // Certificate access config. The following are supported: // - GCPSecretManagerCertificateConfig oneof certificate_config { - // Google Secret Manager (GCP) certificate configuration. + // Secret Manager certificate configuration. GCPSecretManagerCertificateConfig gcp_secret_manager_certificate_config = 2; } @@ -1723,6 +1845,116 @@ message ContainerdConfig { bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; } + // 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. + message RegistryHostConfig { + // CertificateConfig configures certificate for the registry. + message CertificateConfig { + // One of the methods to configure the certificate. + oneof certificate { + // 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" + string gcp_secret_manager_secret_uri = 1; + } + } + + // CertificateConfigPair configures pairs of certificates, which is used for + // client certificate and key pairs under a registry. + message CertificateConfigPair { + // Cert configures the client certificate. + CertificateConfig cert = 1; + + // Key configures the client private key. Optional. + CertificateConfig key = 2; + } + + // RegistryHeader configures headers for the registry. + message RegistryHeader { + // Key configures the header key. + string key = 1; + + // Value configures the header value. + repeated string value = 2; + } + + // HostCapability configures capabilities for the registry host. + enum HostCapability { + // UNKNOWN should never be set. + HOST_CAPABILITY_UNSPECIFIED = 0; + + // Pull represents the capability to fetch manifests and blobs by digest. + HOST_CAPABILITY_PULL = 1; + + // Resolve represents the capability to fetch manifests by name. + HOST_CAPABILITY_RESOLVE = 2; + + // Push represents the capability to push blobs and manifests. + HOST_CAPABILITY_PUSH = 3; + } + + // HostConfig configures the registry host under a given Server. + message HostConfig { + // Host configures the registry host/mirror. + // It supports fully qualified domain names (FQDN) and IP addresses: + // Specifying port is supported. + // Wildcards are NOT supported. + // Examples: + // - my.customdomain.com + // - 10.0.1.2:5000 + string host = 1; + + // 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. + repeated HostCapability capabilities = 2; + + // 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. + bool override_path = 3; + + // Header configures the registry host headers. + repeated RegistryHeader header = 4; + + // CA configures the registry host certificate. + repeated CertificateConfig ca = 5; + + // Client configures the registry host client certificate and key. + repeated CertificateConfigPair client = 6; + + // 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. + google.protobuf.Duration dial_timeout = 7; + } + + // 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. + // Wildcards are NOT supported. + // Examples: + // - my.customdomain.com + // - 10.0.1.2:5000 + string server = 1; + + // HostConfig configures a list of host-specific configurations for the + // server. + // Each server can have at most 10 host configurations. + repeated HostConfig hosts = 2; + } + // PrivateRegistryAccessConfig is used to configure access configuration // for private container registries. PrivateRegistryAccessConfig private_registry_access_config = 1; @@ -1730,6 +1962,11 @@ message ContainerdConfig { // Optional. WritableCgroups defines writable cgroups configuration for the // node pool. WritableCgroups writable_cgroups = 2 [(google.api.field_behavior) = OPTIONAL]; + + // RegistryHostConfig configures containerd registry host configuration. + // Each registry_hosts represents a hosts.toml file. + // At most 25 registry_hosts are allowed. + repeated RegistryHostConfig registry_hosts = 3; } // Kubernetes taint is composed of three fields: key, value, and effect. Effect @@ -1907,6 +2144,10 @@ message AddonsConfig { // Configuration for the Lustre CSI driver. LustreCsiDriverConfig lustre_csi_driver_config = 23; + + // Optional. Configuration for the slice controller add-on. + SliceControllerConfig slice_controller_config = 26 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration options for the HTTP (L7) load balancing controller addon, @@ -2104,6 +2345,12 @@ message LustreCsiDriverConfig { bool enable_legacy_lustre_port = 3 [deprecated = true]; } +// Configuration for the Slice Controller. +message SliceControllerConfig { + // Optional. Indicates whether Slice Controller is enabled in the cluster. + bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; +} + // Configuration options for the Ray Operator add-on. message RayOperatorConfig { // Whether the Ray Operator addon is enabled for this cluster. @@ -2277,7 +2524,7 @@ message IPAllocationPolicy { // netmask. // // Set to a - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2293,7 +2540,7 @@ message IPAllocationPolicy { // netmask. // // Set to a - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2310,7 +2557,7 @@ message IPAllocationPolicy { // netmask. // // Set to a - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2327,7 +2574,7 @@ message IPAllocationPolicy { // netmask. // // Set to a - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2509,7 +2756,7 @@ message Cluster { string network = 8; // The IP address range of the container pods in this cluster, in - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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`. string cluster_ipv4_cidr = 9; @@ -2707,7 +2954,7 @@ message Cluster { // Output only. The IP address range of the Kubernetes services in // this cluster, in - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. string services_ipv4_cidr = 110 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -2738,7 +2985,7 @@ message Cluster { bool enable_tpu = 115 [deprecated = true]; // Output only. The IP address range of the Cloud TPUs in this cluster, in - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2819,6 +3066,9 @@ message Cluster { // Configuration for limiting anonymous access to all endpoints except the // health checks. AnonymousAuthenticationConfig anonymous_authentication_config = 164; + + // Configuration for Managed OpenTelemetry pipeline. + ManagedOpenTelemetryConfig managed_opentelemetry_config = 168; } // RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings @@ -2887,6 +3137,11 @@ message UserManagedKeysConfig { type: "cloudkms.googleapis.com/CryptoKeyVersion" }]; + // Output only. All of the versions of the Cloud KMS cryptoKey that are used + // by Confidential Hyperdisks on the control plane nodes. + repeated string control_plane_disk_encryption_key_versions = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Resource path of the Cloud KMS cryptoKey to use for encryption of internal // etcd backups. string gkeops_etcd_backup_encryption_key = 17 @@ -3357,6 +3612,12 @@ message ClusterUpdate { // The desired network tier configuration for the cluster. NetworkTierConfig desired_network_tier_config = 155; + + // The desired privileged admission config for the cluster. + PrivilegedAdmissionConfig desired_privileged_admission_config = 159; + + // The desired managed open telemetry configuration. + ManagedOpenTelemetryConfig desired_managed_opentelemetry_config = 163; } // AdditionalPodRangesConfig is the configuration for additional pod secondary @@ -3373,6 +3634,25 @@ message AdditionalPodRangesConfig { // AdditionalIPRangesConfig is the configuration for individual additional // subnetwork attached to the cluster message AdditionalIPRangesConfig { + // Additional subnet with DRAINING status will not be selected during new node + // pool creation. To undrain the draining status, update the cluster to set + // the sunbet to ACTIVE status. To remove the additional subnet, use the + // update cluster API to remove the subnet from the + // desired_additional_ip_ranges list. IP ranges can be removed regardless of + // its status, as long as no node pools are using them. + enum Status { + // Not set, same as ACTIVE. + STATUS_UNSPECIFIED = 0; + + // ACTIVE status indicates that the subnet is available for new node pool + // creation. + ACTIVE = 1; + + // DRAINING status indicates that the subnet is not used for new node pool + // creation. + DRAINING = 2; + } + // Name of the subnetwork. This can be the full path of the subnetwork or // just the name. // Example1: my-subnet @@ -3384,6 +3664,9 @@ message AdditionalIPRangesConfig { // Example1: gke-pod-range1 // Example2: gke-pod-range1,gke-pod-range2 repeated string pod_ipv4_range_names = 2; + + // Draining status of the additional subnet. + Status status = 3; } // DesiredAdditionalIPRangesConfig is a wrapper used for cluster update @@ -3920,6 +4203,14 @@ message UpdateNodePoolRequest { // Initiates an upgrade operation that migrates the nodes in the // node pool to the specified boot disk config. BootDisk boot_disk = 47; + + // The desired node drain configuration for nodes in the node pool. + NodePool.NodeDrainConfig node_drain_config = 48; + + // 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. + google.protobuf.Duration consolidation_delay = 49; } // SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool. @@ -4674,6 +4965,13 @@ message NodePool { bool enabled = 1; } + // NodeDrainConfig contains the node drain related configurations for this + // nodepool. + message NodeDrainConfig { + // Whether to respect PDB during node pool deletion. + optional bool respect_pdb_during_node_pool_deletion = 3; + } + // The name of the node pool. string name = 1; @@ -4765,6 +5063,9 @@ message NodePool { // Enable best effort provisioning for nodes BestEffortProvisioning best_effort_provisioning = 113; + + // Specifies the node drain configuration for this node pool. + NodeDrainConfig node_drain_config = 116; } // NodeManagement defines the set of node management services turned on for the @@ -4902,7 +5203,7 @@ message RecurringTimeWindow { TimeWindow window = 1; // An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how - // this window reccurs. They go on for the span of time between the start and + // 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: @@ -5076,6 +5377,15 @@ message ClusterAutoscaling { BALANCED = 2; } + // Defines possible options for Autopilot general profile. + enum AutopilotGeneralProfile { + // Use default configuration. + AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED = 0; + + // Avoid extra IP consumption. + NO_PERFORMANCE = 1; + } + // Enables automatic node pool creation and deletion. bool enable_node_autoprovisioning = 1; @@ -5097,6 +5407,10 @@ message ClusterAutoscaling { // Default compute class is a configuration for default compute class. DefaultComputeClassConfig default_compute_class_config = 9; + + // Autopilot general profile for the cluster, which defines the + // configuration for the cluster. + AutopilotGeneralProfile autopilot_general_profile = 14; } // AutoprovisioningNodePoolDefaults contains defaults for a node pool created @@ -6153,6 +6467,21 @@ message FastSocket { bool enabled = 1; } +// GPUDirectConfig specifies the GPU direct strategy on the node pool. +message GPUDirectConfig { + // Option for GPU direct Strategies + enum GPUDirectStrategy { + // Default value. No GPU Direct strategy is enabled on the node. + GPU_DIRECT_STRATEGY_UNSPECIFIED = 0; + + // GPUDirect-RDMA on A3 Ultra, and A4 machine types + RDMA = 2; + } + + // The type of GPU direct strategy to enable on the node pool. + optional GPUDirectStrategy gpu_direct_strategy = 1; +} + // PrivateIPv6GoogleAccess controls whether and how the pods can communicate // with Google Services through gRPC over IPv6. enum PrivateIPv6GoogleAccess { @@ -6318,6 +6647,9 @@ message UpgradeInfoEvent { // UPGRADE_LIFECYCLE indicates the event is about the upgrade lifecycle. UPGRADE_LIFECYCLE = 3; + + // DISRUPTION_EVENT indicates the event is about the disruption. + DISRUPTION_EVENT = 4; } // The resource type associated with the upgrade. @@ -6356,6 +6688,54 @@ message UpgradeInfoEvent { // The type of the event. EventType event_type = 12; + + // The information about the disruption event. This field is only populated + // when event_type is DISRUPTION_EVENT. + optional DisruptionEvent disruption_event = 14; +} + +// DisruptionEvent is a notification sent to customers about the disruption +// event of a resource. +message DisruptionEvent { + // The type of the disruption event. + enum DisruptionType { + // DISRUPTION_TYPE_UNSPECIFIED indicates the disruption type is unspecified. + DISRUPTION_TYPE_UNSPECIFIED = 0; + + // POD_NOT_ENOUGH_PDB indicates there are still running pods + // on the node during node drain because their evictions are blocked by PDB. + POD_NOT_ENOUGH_PDB = 1; + + // POD_PDB_VIOLATION indicates that there are force pod + // evictions during node drain which violate the PDB. + POD_PDB_VIOLATION = 2; + } + + // The namespace/name of the pod whose eviction is blocked by PDB. + message PdbBlockedPod { + // The namespace of the pod. + string namespace = 1; + + // The name of the pod. + string name = 2; + } + + // The type of the disruption event. + DisruptionType disruption_type = 1; + + // The node whose drain is blocked by PDB. This field is set for both + // POD_PDB_VIOLATION and POD_NOT_ENOUGH_PDB event. + string pdb_blocked_node = 2; + + // The pods whose evictions are blocked by PDB. This field is set for + // both POD_PDB_VIOLATION and POD_NOT_ENOUGH_PDB event. + repeated PdbBlockedPod pdb_blocked_pod = 3; + + // The timeout in seconds for which the node drain is blocked by PDB. + // After this timeout, pods are forcefully evicted. + // This field is only populated when event_type is + // POD_PDB_VIOLATION. + optional google.protobuf.Duration pdb_violation_timeout = 4; } // UpgradeAvailableEvent is a notification sent to customers when a new @@ -6665,6 +7045,11 @@ enum NodePoolUpdateStrategy { // SURGE is the traditional way of upgrade a node pool. // max_surge and max_unavailable determines the level of upgrade parallelism. SURGE = 3; + + // SHORT_LIVED is the dedicated upgrade strategy for + // QueuedProvisioning and flex start nodepools scaled up only by enqueueing to + // the Dynamic Workload Scheduler (DWS). + SHORT_LIVED = 5; } // ManagedPrometheusConfig defines the configuration for @@ -7262,3 +7647,23 @@ message NetworkTierConfig { // Network tier configuration. NetworkTier network_tier = 1; } + +// ManagedOpenTelemetryConfig is the configuration for the GKE Managed +// OpenTelemetry pipeline. +message ManagedOpenTelemetryConfig { + // Scope is the scope of the Managed OpenTelemetry pipeline. + enum Scope { + // SCOPE_UNSPECIFIED is when the scope is not set. + SCOPE_UNSPECIFIED = 0; + + // NONE is used to disable the Managed OpenTelemetry pipeline. + NONE = 1; + + // COLLECTION_AND_INSTRUMENTATION_COMPONENTS is used to enable the Managed + // OpenTelemetry pipeline for collection and instrumentation components. + COLLECTION_AND_INSTRUMENTATION_COMPONENTS = 2; + } + + // Scope of the Managed OpenTelemetry pipeline. + optional Scope scope = 1; +} diff --git a/packages/google-container/protos/google/container/v1beta1/cluster_service.proto b/packages/google-container/protos/google/container/v1beta1/cluster_service.proto index e25f452de8c..a15b9a084c0 100644 --- a/packages/google-container/protos/google/container/v1beta1/cluster_service.proto +++ b/packages/google-container/protos/google/container/v1beta1/cluster_service.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -47,6 +47,10 @@ option (google.api.resource_definition) = { type: "cloudkms.googleapis.com/CryptoKeyVersion" pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" }; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Subnetwork" + pattern: "projects/{project}/regions/{region}/subnetworks/{subnetwork}" +}; // Google Kubernetes Engine Cluster Manager v1beta1 service ClusterManager { @@ -535,6 +539,31 @@ service ClusterManager { }; option (google.api.method_signature) = "name"; } + + // CompleteControlPlaneUpgrade completes the rollback-safe upgrade by + // performing the step two upgrade for a specific cluster. + rpc CompleteControlPlaneUpgrade(CompleteControlPlaneUpgradeRequest) + returns (Operation) { + option (google.api.http) = { + post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:completeControlPlaneUpgrade" + body: "*" + additional_bindings { + post: "/v1beta1/{name=projects/*/zones/*/clusters/*}:completeControlPlaneUpgrade" + body: "*" + } + }; + } +} + +// CompleteControlPlaneUpgradeRequest sets the name of target cluster to +// complete upgrade. +message CompleteControlPlaneUpgradeRequest { + // The name (project, location, cluster) of the cluster to complete upgrade. + // Specified in the format `projects/*/locations/*/clusters/*`. + string name = 1; + + // API request version that initiates this operation. + string version = 2; } // Parameters that can be configured on Linux nodes. @@ -722,7 +751,12 @@ message LinuxNodeConfig { // 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 @@ -732,14 +766,23 @@ message LinuxNodeConfig { // 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 @@ -990,6 +1033,26 @@ message NodeKubeletConfig { // be OOM killed individually instead of as a group. optional bool single_process_oom_kill = 22 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 int32 shutdown_grace_period_seconds = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. shutdown_grace_period_critical_pod_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 int32 shutdown_grace_period_critical_pods_seconds = 27 + [(google.api.field_behavior) = OPTIONAL]; } // TopologyManager defines the configuration options for Topology Manager @@ -1442,6 +1505,9 @@ message NodeConfig { optional SecondaryBootDiskUpdateStrategy secondary_boot_disk_update_strategy = 50; + // The configuration for GPU Direct + optional GPUDirectConfig gpu_direct_config = 51; + // The maximum duration for the nodes to exist. // If unspecified, the nodes can exist indefinitely. google.protobuf.Duration max_run_duration = 53; @@ -1462,6 +1528,11 @@ message NodeConfig { // Boot disk configuration for the node pool. BootDisk boot_disk = 57; + + // 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. + google.protobuf.Duration consolidation_delay = 60; } // Specifies options for controlling advanced machine features. @@ -1592,12 +1663,21 @@ message NodeNetworkConfig { double pod_ipv4_range_utilization = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The subnetwork path for the node pool. + // Optional. 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 for - // the node pool is picked based on the IP utilization during node pool - // creation and is immutable. - string subnetwork = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + // If the cluster is associated with multiple subnetworks, the subnetwork can + // be either: + // 1. A user supplied subnetwork name/full path during node pool creation. + // Example1: my-subnet + // Example2: projects/gke-project/regions/us-central1/subnetworks/my-subnet + // 2. A subnetwork path picked based on the IP utilization during node pool + // creation and is immutable. + string subnetwork = 19 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "compute.googleapis.com/Subnetwork" + } + ]; // Output only. The network tier configuration for the node pool inherits from // the cluster-level configuration and remains immutable throughout the node @@ -1871,6 +1951,116 @@ message ContainerdConfig { bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; } + // 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. + message RegistryHostConfig { + // CertificateConfig configures certificate for the registry. + message CertificateConfig { + // One of the methods to configure the certificate. + oneof certificate { + // 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" + string gcp_secret_manager_secret_uri = 1; + } + } + + // CertificateConfigPair configures pairs of certificates, which is used for + // client certificate and key pairs under a registry. + message CertificateConfigPair { + // Cert configures the client certificate. + CertificateConfig cert = 1; + + // Key configures the client private key. Optional. + CertificateConfig key = 2; + } + + // RegistryHeader configures headers for the registry. + message RegistryHeader { + // Key configures the header key. + string key = 1; + + // Value configures the header value. + repeated string value = 2; + } + + // HostCapability configures capabilities for the registry host. + enum HostCapability { + // UNKNOWN should never be set. + HOST_CAPABILITY_UNSPECIFIED = 0; + + // Pull represents the capability to fetch manifests and blobs by digest. + HOST_CAPABILITY_PULL = 1; + + // Resolve represents the capability to fetch manifests by name. + HOST_CAPABILITY_RESOLVE = 2; + + // Push represents the capability to push blobs and manifests. + HOST_CAPABILITY_PUSH = 3; + } + + // HostConfig configures the registry host under a given Server. + message HostConfig { + // Host configures the registry host/mirror. + // It supports fully qualified domain names (FQDN) and IP addresses: + // Specifying port is supported. + // Wildcards are NOT supported. + // Examples: + // - my.customdomain.com + // - 10.0.1.2:5000 + string host = 1; + + // 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. + repeated HostCapability capabilities = 2; + + // 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. + bool override_path = 3; + + // Header configures the registry host headers. + repeated RegistryHeader header = 4; + + // CA configures the registry host certificate. + repeated CertificateConfig ca = 5; + + // Client configures the registry host client certificate and key. + repeated CertificateConfigPair client = 6; + + // 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. + google.protobuf.Duration dial_timeout = 7; + } + + // 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. + // Wildcards are NOT supported. + // Examples: + // - my.customdomain.com + // - 10.0.1.2:5000 + string server = 1; + + // HostConfig configures a list of host-specific configurations for the + // server. + // Each server can have at most 10 host configurations. + repeated HostConfig hosts = 2; + } + // PrivateRegistryAccessConfig is used to configure access configuration // for private container registries. PrivateRegistryAccessConfig private_registry_access_config = 1; @@ -1878,6 +2068,11 @@ message ContainerdConfig { // Optional. WritableCgroups defines writable cgroups configuration for the // node pool. WritableCgroups writable_cgroups = 2 [(google.api.field_behavior) = OPTIONAL]; + + // RegistryHostConfig configures containerd registry host configuration. + // Each registry_hosts represents a hosts.toml file. + // At most 25 registry_hosts are allowed. + repeated RegistryHostConfig registry_hosts = 3; } // HostMaintenancePolicy contains the maintenance policy for the hosts on which @@ -2120,6 +2315,13 @@ message AddonsConfig { // Configuration for the Lustre CSI driver. LustreCsiDriverConfig lustre_csi_driver_config = 23; + + // Configuration for the Pod Snapshot feature. + PodSnapshotConfig pod_snapshot_config = 24; + + // Optional. Configuration for the slice controller add-on. + SliceControllerConfig slice_controller_config = 26 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration options for the HTTP (L7) load balancing controller addon, @@ -2230,9 +2432,18 @@ message LustreCsiDriverConfig { // 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. bool enable_legacy_lustre_port = 3 [deprecated = true]; } +// Configuration for the Slice Controller. +message SliceControllerConfig { + // Optional. Indicates whether Slice Controller is enabled in the cluster. + bool enabled = 1 [(google.api.field_behavior) = OPTIONAL]; +} + // Configuration options for the Ray Operator add-on. message RayOperatorConfig { // Whether the Ray addon is enabled for this cluster. @@ -2497,7 +2708,7 @@ message IPAllocationPolicy { // netmask. // // Set to a - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2513,7 +2724,7 @@ message IPAllocationPolicy { // netmask. // // Set to a - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2530,7 +2741,7 @@ message IPAllocationPolicy { // netmask. // // Set to a - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2561,7 +2772,7 @@ message IPAllocationPolicy { // netmask. // // Set to a - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -2828,7 +3039,7 @@ message Cluster { string network = 8; // The IP address range of the container pods in this cluster, in - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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`. string cluster_ipv4_cidr = 9; @@ -3032,6 +3243,16 @@ message Cluster { string current_master_version = 104 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The current emulated version of the master endpoint. + // The version is in minor version format, e.g. 1.30. + // No value or empty string means the cluster has no emulated version. + string current_emulated_version = 167 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The rollback safe upgrade information of the cluster. + // This field is used when user manually triggers a rollback safe upgrade. + RollbackSafeUpgrade rollback_safe_upgrade = 170; + // Output only. Deprecated, use // [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools) // instead. The current version of the node software components. @@ -3061,7 +3282,7 @@ message Cluster { // Output only. The IP address range of the Kubernetes services in // this cluster, in - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. string services_ipv4_cidr = 110 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -3093,7 +3314,7 @@ message Cluster { bool enable_tpu = 115 [deprecated = true]; // Output only. The IP address range of the Cloud TPUs in this cluster, in - // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // [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. @@ -3184,6 +3405,9 @@ message Cluster { // Configuration for sync Secret Manager secrets as k8s secrets. SecretSyncConfig secret_sync_config = 166; + + // Configuration for Managed OpenTelemetry pipeline. + ManagedOpenTelemetryConfig managed_opentelemetry_config = 168; } // RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings @@ -3252,6 +3476,11 @@ message UserManagedKeysConfig { type: "cloudkms.googleapis.com/CryptoKeyVersion" }]; + // Output only. All of the versions of the Cloud KMS cryptoKey that are used + // by Confidential Hyperdisks on the control plane nodes. + repeated string control_plane_disk_encryption_key_versions = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Resource path of the Cloud KMS cryptoKey to use for encryption of internal // etcd backups. string gkeops_etcd_backup_encryption_key = 17 @@ -3819,6 +4048,15 @@ message ClusterUpdate { // Configuration for sync Secret Manager secrets as k8s secrets. SecretSyncConfig desired_secret_sync_config = 158; + + // The desired privileged admission config for the cluster. + PrivilegedAdmissionConfig desired_privileged_admission_config = 159; + + // The desired rollback safe upgrade configuration. + RollbackSafeUpgrade desired_rollback_safe_upgrade = 161; + + // The desired managed open telemetry configuration. + ManagedOpenTelemetryConfig desired_managed_opentelemetry_config = 163; } // AdditionalPodRangesConfig is the configuration for additional pod secondary @@ -3835,6 +4073,25 @@ message AdditionalPodRangesConfig { // AdditionalIPRangesConfig is the configuration for individual additional // subnetwork attached to the cluster message AdditionalIPRangesConfig { + // Additional subnet with DRAINING status will not be selected during new node + // pool creation. To undrain the draining status, update the cluster to set + // the sunbet to ACTIVE status. To remove the additional subnet, use the + // update cluster API to remove the subnet from the + // desired_additional_ip_ranges list. IP ranges can be removed regardless of + // its status, as long as no node pools are using them. + enum Status { + // Not set, same as ACTIVE. + STATUS_UNSPECIFIED = 0; + + // ACTIVE status indicates that the subnet is available for new node pool + // creation. + ACTIVE = 1; + + // DRAINING status indicates that the subnet is not used for new node pool + // creation. + DRAINING = 2; + } + // Name of the subnetwork. This can be the full path of the subnetwork or // just the name. // Example1: my-subnet @@ -3846,6 +4103,9 @@ message AdditionalIPRangesConfig { // Example1: gke-pod-range1 // Example2: gke-pod-range1,gke-pod-range2 repeated string pod_ipv4_range_names = 2; + + // Draining status of the additional subnet. + Status status = 3; } // DesiredAdditionalIPRangesConfig is a wrapper used for cluster update @@ -4379,6 +4639,14 @@ message UpdateNodePoolRequest { // Initiates an upgrade operation that migrates the nodes in the // node pool to the specified boot disk config. BootDisk boot_disk = 47; + + // The desired node drain configuration for nodes in the node pool. + NodePool.NodeDrainConfig node_drain_config = 48; + + // 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. + google.protobuf.Duration consolidation_delay = 49; } // SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool. @@ -5186,6 +5454,13 @@ message NodePool { bool enabled = 1; } + // NodeDrainConfig contains the node drain related configurations for this + // nodepool. + message NodeDrainConfig { + // Whether to respect PDB during node pool deletion. + optional bool respect_pdb_during_node_pool_deletion = 3; + } + // The name of the node pool. string name = 1; @@ -5277,6 +5552,9 @@ message NodePool { // Enable best effort provisioning for nodes BestEffortProvisioning best_effort_provisioning = 113; + + // Specifies the node drain configuration for this node pool. + NodeDrainConfig node_drain_config = 116; } // NodeManagement defines the set of node management services turned on for the @@ -5569,6 +5847,15 @@ message ClusterAutoscaling { BALANCED = 2; } + // Defines possible options for Autopilot general profile. + enum AutopilotGeneralProfile { + // Use default configuration. + AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED = 0; + + // Avoid extra IP consumption. + NO_PERFORMANCE = 1; + } + // Enables automatic node pool creation and deletion. bool enable_node_autoprovisioning = 1; @@ -5590,6 +5877,10 @@ message ClusterAutoscaling { // Default compute class is a configuration for default compute class. DefaultComputeClassConfig default_compute_class_config = 9; + + // Autopilot general profile for the cluster, which defines the + // configuration for the cluster. + AutopilotGeneralProfile autopilot_general_profile = 14; } // AutoprovisioningNodePoolDefaults contains defaults for a node pool created @@ -6613,6 +6904,21 @@ message FastSocket { bool enabled = 1; } +// GPUDirectConfig specifies the GPU direct strategy on the node pool. +message GPUDirectConfig { + // Option for GPU direct Strategies + enum GPUDirectStrategy { + // Default value. No GPU Direct strategy is enabled on the node. + GPU_DIRECT_STRATEGY_UNSPECIFIED = 0; + + // GPUDirect-RDMA on A3 Ultra, and A4 machine types + RDMA = 2; + } + + // The type of GPU direct strategy to enable on the node pool. + optional GPUDirectStrategy gpu_direct_strategy = 1; +} + // GetOpenIDConfigRequest gets the OIDC discovery document for the // cluster. See the OpenID Connect Discovery 1.0 specification for details. message GetOpenIDConfigRequest { @@ -6831,7 +7137,34 @@ enum PrivateIPv6GoogleAccess { } // Master is the configuration for components on master. -message Master {} +message Master { + // Output only. The compatibility status of the control plane. + // It should be empty if the cluster does not have emulated version. + CompatibilityStatus compatibility_status = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// CompatibilityStatus is the status regarding the control plane's +// compatibility. +message CompatibilityStatus { + // Output only. The GKE version that the cluster can be safely downgraded to + // if the cluster is emulating the previous minor version. It is usually the + // cluster's previous version before a minor version upgrade. + string downgradable_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last time the control plane became available after a minor + // version binary upgrade with emulated version set. It indicates the last + // time the cluster entered the rollback safe mode. + google.protobuf.Timestamp emulated_version_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// RollbackSafeUpgrade is the configuration for the rollback safe upgrade. +message RollbackSafeUpgrade { + // A user-defined period for the cluster remains in the rollbackable state. + // ex: {seconds: 21600}. + google.protobuf.Duration control_plane_soak_duration = 1; +} // AutopilotConversionStatus represents conversion status. message AutopilotConversionStatus { @@ -7048,6 +7381,9 @@ message UpgradeInfoEvent { // UPGRADE_LIFECYCLE indicates the event is about the upgrade lifecycle. UPGRADE_LIFECYCLE = 3; + + // DISRUPTION_EVENT indicates the event is about the disruption. + DISRUPTION_EVENT = 4; } // The resource type associated with the upgrade. @@ -7092,6 +7428,54 @@ message UpgradeInfoEvent { // The type of the event. EventType event_type = 12; + + // The information about the disruption event. This field is only populated + // when event_type is DISRUPTION_EVENT. + optional DisruptionEvent disruption_event = 14; +} + +// DisruptionEvent is a notification sent to customers about the disruption +// event of a resource. +message DisruptionEvent { + // The type of the disruption event. + enum DisruptionType { + // DISRUPTION_TYPE_UNSPECIFIED indicates the disruption type is unspecified. + DISRUPTION_TYPE_UNSPECIFIED = 0; + + // POD_NOT_ENOUGH_PDB indicates there are still running pods + // on the node during node drain because their evictions are blocked by PDB. + POD_NOT_ENOUGH_PDB = 1; + + // POD_PDB_VIOLATION indicates that there are force pod + // evictions during node drain which violate the PDB. + POD_PDB_VIOLATION = 2; + } + + // The namespace/name of the pod whose eviction is blocked by PDB. + message PdbBlockedPod { + // The namespace of the pod. + string namespace = 1; + + // The name of the pod. + string name = 2; + } + + // The type of the disruption event. + DisruptionType disruption_type = 1; + + // The node whose drain is blocked by PDB. This field is set for both + // POD_PDB_VIOLATION and POD_NOT_ENOUGH_PDB event. + string pdb_blocked_node = 2; + + // The pods whose evictions are blocked by PDB. This field is set for + // both POD_PDB_VIOLATION and POD_NOT_ENOUGH_PDB event. + repeated PdbBlockedPod pdb_blocked_pod = 3; + + // The timeout in seconds for which the node drain is blocked by PDB. + // After this timeout, pods are forcefully evicted. + // This field is only populated when event_type is + // POD_PDB_VIOLATION. + optional google.protobuf.Duration pdb_violation_timeout = 4; } // UpgradeAvailableEvent is a notification sent to customers when a new @@ -7179,6 +7563,11 @@ enum NodePoolUpdateStrategy { // SURGE is the traditional way of upgrading a node pool. // max_surge and max_unavailable determines the level of upgrade parallelism. SURGE = 3; + + // SHORT_LIVED is the dedicated upgrade strategy for + // QueuedProvisioning and flex start nodepools scaled up only by enqueueing to + // the Dynamic Workload Scheduler (DWS). + SHORT_LIVED = 5; } // LoggingConfig is cluster logging configuration. @@ -7707,6 +8096,32 @@ message ClusterUpgradeInfo { // The cluster's current minor version's end of extended support timestamp. optional string end_of_extended_support_timestamp = 6; + + // The cluster's rollback-safe upgrade status. + RollbackSafeUpgradeStatus rollback_safe_upgrade_status = 9; +} + +// RollbackSafeUpgradeStatus contains the rollback-safe upgrade status of a +// cluster. +message RollbackSafeUpgradeStatus { + // Mode indicates the mode of the rollback-safe upgrade. + enum Mode { + // MODE_UNSPECIFIED means it's in regular upgrade mode. + MODE_UNSPECIFIED = 0; + + // KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE means it's in rollback-safe mode + // after a KCP minor version step-one upgrade. + KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE = 1; + } + + // The mode of the rollback-safe upgrade. + Mode mode = 1; + + // The rollback-safe mode expiration time. + google.protobuf.Timestamp control_plane_upgrade_rollback_end_time = 2; + + // The GKE version that the cluster previously used before step-one upgrade. + string previous_version = 3; } // UpgradeDetails contains detailed information of each individual upgrade @@ -7759,6 +8174,12 @@ message UpgradeDetails { // The start type of the upgrade. StartType start_type = 6; + + // The emulated version before the upgrade. + string initial_emulated_version = 7; + + // The emulated version after the upgrade. + string target_emulated_version = 8; } // FetchNodePoolUpgradeInfoRequest fetches the upgrade information of a @@ -7901,3 +8322,29 @@ message SecretSyncConfig { // Rotation config for secret manager. optional SyncRotationConfig rotation_config = 2; } + +// ManagedOpenTelemetryConfig is the configuration for the GKE Managed +// OpenTelemetry pipeline. +message ManagedOpenTelemetryConfig { + // Scope is the scope of the Managed OpenTelemetry pipeline. + enum Scope { + // SCOPE_UNSPECIFIED is when the scope is not set. + SCOPE_UNSPECIFIED = 0; + + // NONE is used to disable the Managed OpenTelemetry pipeline. + NONE = 1; + + // COLLECTION_AND_INSTRUMENTATION_COMPONENTS is used to enable the Managed + // OpenTelemetry pipeline for collection and instrumentation components. + COLLECTION_AND_INSTRUMENTATION_COMPONENTS = 2; + } + + // Scope of the Managed OpenTelemetry pipeline. + optional Scope scope = 1; +} + +// PodSnapshotConfig is the configuration for GKE Pod Snapshots feature. +message PodSnapshotConfig { + // Whether or not the Pod Snapshots feature is enabled. + bool enabled = 1; +} diff --git a/packages/google-container/protos/protos.d.ts b/packages/google-container/protos/protos.d.ts index e668c348900..4f7b5ef8575 100644 --- a/packages/google-container/protos/protos.d.ts +++ b/packages/google-container/protos/protos.d.ts @@ -821,6 +821,9 @@ export namespace google { /** LinuxNodeConfig transparentHugepageDefrag */ transparentHugepageDefrag?: (google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag|keyof typeof google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag|null); + /** LinuxNodeConfig swapConfig */ + swapConfig?: (google.container.v1.LinuxNodeConfig.ISwapConfig|null); + /** LinuxNodeConfig nodeKernelModuleLoading */ nodeKernelModuleLoading?: (google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading|null); } @@ -849,6 +852,9 @@ export namespace google { /** LinuxNodeConfig transparentHugepageDefrag. */ public transparentHugepageDefrag: (google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag|keyof typeof google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag); + /** LinuxNodeConfig swapConfig. */ + public swapConfig?: (google.container.v1.LinuxNodeConfig.ISwapConfig|null); + /** LinuxNodeConfig nodeKernelModuleLoading. */ public nodeKernelModuleLoading?: (google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading|null); @@ -1060,6 +1066,539 @@ export namespace google { TRANSPARENT_HUGEPAGE_DEFRAG_NEVER = 5 } + /** Properties of a SwapConfig. */ + interface ISwapConfig { + + /** SwapConfig enabled */ + enabled?: (boolean|null); + + /** SwapConfig encryptionConfig */ + encryptionConfig?: (google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig|null); + + /** SwapConfig bootDiskProfile */ + bootDiskProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile|null); + + /** SwapConfig ephemeralLocalSsdProfile */ + ephemeralLocalSsdProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile|null); + + /** SwapConfig dedicatedLocalSsdProfile */ + dedicatedLocalSsdProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile|null); + } + + /** Represents a SwapConfig. */ + class SwapConfig implements ISwapConfig { + + /** + * Constructs a new SwapConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.LinuxNodeConfig.ISwapConfig); + + /** SwapConfig enabled. */ + public enabled?: (boolean|null); + + /** SwapConfig encryptionConfig. */ + public encryptionConfig?: (google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig|null); + + /** SwapConfig bootDiskProfile. */ + public bootDiskProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile|null); + + /** SwapConfig ephemeralLocalSsdProfile. */ + public ephemeralLocalSsdProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile|null); + + /** SwapConfig dedicatedLocalSsdProfile. */ + public dedicatedLocalSsdProfile?: (google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile|null); + + /** SwapConfig performanceProfile. */ + public performanceProfile?: ("bootDiskProfile"|"ephemeralLocalSsdProfile"|"dedicatedLocalSsdProfile"); + + /** + * Creates a new SwapConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns SwapConfig instance + */ + public static create(properties?: google.container.v1.LinuxNodeConfig.ISwapConfig): google.container.v1.LinuxNodeConfig.SwapConfig; + + /** + * Encodes the specified SwapConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.verify|verify} messages. + * @param message SwapConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.LinuxNodeConfig.ISwapConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SwapConfig message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.verify|verify} messages. + * @param message SwapConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.ISwapConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SwapConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SwapConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LinuxNodeConfig.SwapConfig; + + /** + * Decodes a SwapConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SwapConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LinuxNodeConfig.SwapConfig; + + /** + * Verifies a SwapConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SwapConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SwapConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig; + + /** + * Creates a plain object from a SwapConfig message. Also converts values to other types if specified. + * @param message SwapConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.LinuxNodeConfig.SwapConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SwapConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SwapConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace SwapConfig { + + /** Properties of an EncryptionConfig. */ + interface IEncryptionConfig { + + /** EncryptionConfig disabled */ + disabled?: (boolean|null); + } + + /** Represents an EncryptionConfig. */ + class EncryptionConfig implements IEncryptionConfig { + + /** + * Constructs a new EncryptionConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig); + + /** EncryptionConfig disabled. */ + public disabled?: (boolean|null); + + /** + * Creates a new EncryptionConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns EncryptionConfig instance + */ + public static create(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig): google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig; + + /** + * Encodes the specified EncryptionConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify|verify} messages. + * @param message EncryptionConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EncryptionConfig message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify|verify} messages. + * @param message EncryptionConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EncryptionConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EncryptionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig; + + /** + * Decodes an EncryptionConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EncryptionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig; + + /** + * Verifies an EncryptionConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an EncryptionConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EncryptionConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig; + + /** + * Creates a plain object from an EncryptionConfig message. Also converts values to other types if specified. + * @param message EncryptionConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EncryptionConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EncryptionConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a BootDiskProfile. */ + interface IBootDiskProfile { + + /** BootDiskProfile swapSizeGib */ + swapSizeGib?: (number|Long|string|null); + + /** BootDiskProfile swapSizePercent */ + swapSizePercent?: (number|null); + } + + /** Represents a BootDiskProfile. */ + class BootDiskProfile implements IBootDiskProfile { + + /** + * Constructs a new BootDiskProfile. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile); + + /** BootDiskProfile swapSizeGib. */ + public swapSizeGib?: (number|Long|string|null); + + /** BootDiskProfile swapSizePercent. */ + public swapSizePercent?: (number|null); + + /** BootDiskProfile swapSize. */ + public swapSize?: ("swapSizeGib"|"swapSizePercent"); + + /** + * Creates a new BootDiskProfile instance using the specified properties. + * @param [properties] Properties to set + * @returns BootDiskProfile instance + */ + public static create(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile): google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile; + + /** + * Encodes the specified BootDiskProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify|verify} messages. + * @param message BootDiskProfile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BootDiskProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify|verify} messages. + * @param message BootDiskProfile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BootDiskProfile message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BootDiskProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile; + + /** + * Decodes a BootDiskProfile message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BootDiskProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile; + + /** + * Verifies a BootDiskProfile message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BootDiskProfile message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BootDiskProfile + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile; + + /** + * Creates a plain object from a BootDiskProfile message. Also converts values to other types if specified. + * @param message BootDiskProfile + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BootDiskProfile to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BootDiskProfile + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an EphemeralLocalSsdProfile. */ + interface IEphemeralLocalSsdProfile { + + /** EphemeralLocalSsdProfile swapSizeGib */ + swapSizeGib?: (number|Long|string|null); + + /** EphemeralLocalSsdProfile swapSizePercent */ + swapSizePercent?: (number|null); + } + + /** Represents an EphemeralLocalSsdProfile. */ + class EphemeralLocalSsdProfile implements IEphemeralLocalSsdProfile { + + /** + * Constructs a new EphemeralLocalSsdProfile. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile); + + /** EphemeralLocalSsdProfile swapSizeGib. */ + public swapSizeGib?: (number|Long|string|null); + + /** EphemeralLocalSsdProfile swapSizePercent. */ + public swapSizePercent?: (number|null); + + /** EphemeralLocalSsdProfile swapSize. */ + public swapSize?: ("swapSizeGib"|"swapSizePercent"); + + /** + * Creates a new EphemeralLocalSsdProfile instance using the specified properties. + * @param [properties] Properties to set + * @returns EphemeralLocalSsdProfile instance + */ + public static create(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile): google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile; + + /** + * Encodes the specified EphemeralLocalSsdProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify|verify} messages. + * @param message EphemeralLocalSsdProfile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified EphemeralLocalSsdProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify|verify} messages. + * @param message EphemeralLocalSsdProfile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an EphemeralLocalSsdProfile message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns EphemeralLocalSsdProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile; + + /** + * Decodes an EphemeralLocalSsdProfile message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns EphemeralLocalSsdProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile; + + /** + * Verifies an EphemeralLocalSsdProfile message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an EphemeralLocalSsdProfile message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns EphemeralLocalSsdProfile + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile; + + /** + * Creates a plain object from an EphemeralLocalSsdProfile message. Also converts values to other types if specified. + * @param message EphemeralLocalSsdProfile + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this EphemeralLocalSsdProfile to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for EphemeralLocalSsdProfile + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DedicatedLocalSsdProfile. */ + interface IDedicatedLocalSsdProfile { + + /** DedicatedLocalSsdProfile diskCount */ + diskCount?: (number|Long|string|null); + } + + /** Represents a DedicatedLocalSsdProfile. */ + class DedicatedLocalSsdProfile implements IDedicatedLocalSsdProfile { + + /** + * Constructs a new DedicatedLocalSsdProfile. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile); + + /** DedicatedLocalSsdProfile diskCount. */ + public diskCount: (number|Long|string); + + /** + * Creates a new DedicatedLocalSsdProfile instance using the specified properties. + * @param [properties] Properties to set + * @returns DedicatedLocalSsdProfile instance + */ + public static create(properties?: google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile): google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile; + + /** + * Encodes the specified DedicatedLocalSsdProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify|verify} messages. + * @param message DedicatedLocalSsdProfile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DedicatedLocalSsdProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify|verify} messages. + * @param message DedicatedLocalSsdProfile message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DedicatedLocalSsdProfile message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DedicatedLocalSsdProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile; + + /** + * Decodes a DedicatedLocalSsdProfile message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DedicatedLocalSsdProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile; + + /** + * Verifies a DedicatedLocalSsdProfile message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DedicatedLocalSsdProfile message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DedicatedLocalSsdProfile + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile; + + /** + * Creates a plain object from a DedicatedLocalSsdProfile message. Also converts values to other types if specified. + * @param message DedicatedLocalSsdProfile + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DedicatedLocalSsdProfile to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DedicatedLocalSsdProfile + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + /** Properties of a NodeKernelModuleLoading. */ interface INodeKernelModuleLoading { @@ -1337,6 +1876,12 @@ export namespace google { /** NodeKubeletConfig singleProcessOomKill */ singleProcessOomKill?: (boolean|null); + + /** NodeKubeletConfig shutdownGracePeriodSeconds */ + shutdownGracePeriodSeconds?: (number|null); + + /** NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds */ + shutdownGracePeriodCriticalPodsSeconds?: (number|null); } /** Represents a NodeKubeletConfig. */ @@ -1408,6 +1953,12 @@ export namespace google { /** NodeKubeletConfig singleProcessOomKill. */ public singleProcessOomKill?: (boolean|null); + /** NodeKubeletConfig shutdownGracePeriodSeconds. */ + public shutdownGracePeriodSeconds?: (number|null); + + /** NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds. */ + public shutdownGracePeriodCriticalPodsSeconds?: (number|null); + /** * Creates a new NodeKubeletConfig instance using the specified properties. * @param [properties] Properties to set @@ -2190,6 +2741,9 @@ export namespace google { /** NodeConfig secondaryBootDiskUpdateStrategy */ secondaryBootDiskUpdateStrategy?: (google.container.v1.ISecondaryBootDiskUpdateStrategy|null); + /** NodeConfig gpuDirectConfig */ + gpuDirectConfig?: (google.container.v1.IGPUDirectConfig|null); + /** NodeConfig maxRunDuration */ maxRunDuration?: (google.protobuf.IDuration|null); @@ -2204,6 +2758,9 @@ export namespace google { /** NodeConfig bootDisk */ bootDisk?: (google.container.v1.IBootDisk|null); + + /** NodeConfig consolidationDelay */ + consolidationDelay?: (google.protobuf.IDuration|null); } /** Represents a NodeConfig. */ @@ -2335,6 +2892,9 @@ export namespace google { /** NodeConfig secondaryBootDiskUpdateStrategy. */ public secondaryBootDiskUpdateStrategy?: (google.container.v1.ISecondaryBootDiskUpdateStrategy|null); + /** NodeConfig gpuDirectConfig. */ + public gpuDirectConfig?: (google.container.v1.IGPUDirectConfig|null); + /** NodeConfig maxRunDuration. */ public maxRunDuration?: (google.protobuf.IDuration|null); @@ -2350,6 +2910,9 @@ export namespace google { /** NodeConfig bootDisk. */ public bootDisk?: (google.container.v1.IBootDisk|null); + /** NodeConfig consolidationDelay. */ + public consolidationDelay?: (google.protobuf.IDuration|null); + /** * Creates a new NodeConfig instance using the specified properties. * @param [properties] Properties to set @@ -3702,6 +4265,9 @@ export namespace google { /** ContainerdConfig writableCgroups */ writableCgroups?: (google.container.v1.ContainerdConfig.IWritableCgroups|null); + + /** ContainerdConfig registryHosts */ + registryHosts?: (google.container.v1.ContainerdConfig.IRegistryHostConfig[]|null); } /** Represents a ContainerdConfig. */ @@ -3719,6 +4285,9 @@ export namespace google { /** ContainerdConfig writableCgroups. */ public writableCgroups?: (google.container.v1.ContainerdConfig.IWritableCgroups|null); + /** ContainerdConfig registryHosts. */ + public registryHosts: google.container.v1.ContainerdConfig.IRegistryHostConfig[]; + /** * Creates a new ContainerdConfig instance using the specified properties. * @param [properties] Properties to set @@ -4207,6 +4776,559 @@ export namespace google { */ public static getTypeUrl(typeUrlPrefix?: string): string; } + + /** Properties of a RegistryHostConfig. */ + interface IRegistryHostConfig { + + /** RegistryHostConfig server */ + server?: (string|null); + + /** RegistryHostConfig hosts */ + hosts?: (google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig[]|null); + } + + /** Represents a RegistryHostConfig. */ + class RegistryHostConfig implements IRegistryHostConfig { + + /** + * Constructs a new RegistryHostConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.ContainerdConfig.IRegistryHostConfig); + + /** RegistryHostConfig server. */ + public server: string; + + /** RegistryHostConfig hosts. */ + public hosts: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig[]; + + /** + * Creates a new RegistryHostConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns RegistryHostConfig instance + */ + public static create(properties?: google.container.v1.ContainerdConfig.IRegistryHostConfig): google.container.v1.ContainerdConfig.RegistryHostConfig; + + /** + * Encodes the specified RegistryHostConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.verify|verify} messages. + * @param message RegistryHostConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.ContainerdConfig.IRegistryHostConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RegistryHostConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.verify|verify} messages. + * @param message RegistryHostConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.ContainerdConfig.IRegistryHostConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RegistryHostConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RegistryHostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ContainerdConfig.RegistryHostConfig; + + /** + * Decodes a RegistryHostConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RegistryHostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ContainerdConfig.RegistryHostConfig; + + /** + * Verifies a RegistryHostConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RegistryHostConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RegistryHostConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig; + + /** + * Creates a plain object from a RegistryHostConfig message. Also converts values to other types if specified. + * @param message RegistryHostConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.ContainerdConfig.RegistryHostConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RegistryHostConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RegistryHostConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace RegistryHostConfig { + + /** Properties of a CertificateConfig. */ + interface ICertificateConfig { + + /** CertificateConfig gcpSecretManagerSecretUri */ + gcpSecretManagerSecretUri?: (string|null); + } + + /** Represents a CertificateConfig. */ + class CertificateConfig implements ICertificateConfig { + + /** + * Constructs a new CertificateConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig); + + /** CertificateConfig gcpSecretManagerSecretUri. */ + public gcpSecretManagerSecretUri?: (string|null); + + /** CertificateConfig certificate. */ + public certificate?: "gcpSecretManagerSecretUri"; + + /** + * Creates a new CertificateConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns CertificateConfig instance + */ + public static create(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig; + + /** + * Encodes the specified CertificateConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages. + * @param message CertificateConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CertificateConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages. + * @param message CertificateConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CertificateConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CertificateConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig; + + /** + * Decodes a CertificateConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CertificateConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig; + + /** + * Verifies a CertificateConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CertificateConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CertificateConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig; + + /** + * Creates a plain object from a CertificateConfig message. Also converts values to other types if specified. + * @param message CertificateConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CertificateConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CertificateConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CertificateConfigPair. */ + interface ICertificateConfigPair { + + /** CertificateConfigPair cert */ + cert?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null); + + /** CertificateConfigPair key */ + key?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null); + } + + /** Represents a CertificateConfigPair. */ + class CertificateConfigPair implements ICertificateConfigPair { + + /** + * Constructs a new CertificateConfigPair. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair); + + /** CertificateConfigPair cert. */ + public cert?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null); + + /** CertificateConfigPair key. */ + public key?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null); + + /** + * Creates a new CertificateConfigPair instance using the specified properties. + * @param [properties] Properties to set + * @returns CertificateConfigPair instance + */ + public static create(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair; + + /** + * Encodes the specified CertificateConfigPair message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages. + * @param message CertificateConfigPair message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CertificateConfigPair message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages. + * @param message CertificateConfigPair message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CertificateConfigPair message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CertificateConfigPair + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair; + + /** + * Decodes a CertificateConfigPair message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CertificateConfigPair + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair; + + /** + * Verifies a CertificateConfigPair message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CertificateConfigPair message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CertificateConfigPair + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair; + + /** + * Creates a plain object from a CertificateConfigPair message. Also converts values to other types if specified. + * @param message CertificateConfigPair + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CertificateConfigPair to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CertificateConfigPair + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a RegistryHeader. */ + interface IRegistryHeader { + + /** RegistryHeader key */ + key?: (string|null); + + /** RegistryHeader value */ + value?: (string[]|null); + } + + /** Represents a RegistryHeader. */ + class RegistryHeader implements IRegistryHeader { + + /** + * Constructs a new RegistryHeader. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader); + + /** RegistryHeader key. */ + public key: string; + + /** RegistryHeader value. */ + public value: string[]; + + /** + * Creates a new RegistryHeader instance using the specified properties. + * @param [properties] Properties to set + * @returns RegistryHeader instance + */ + public static create(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader): google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader; + + /** + * Encodes the specified RegistryHeader message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages. + * @param message RegistryHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RegistryHeader message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages. + * @param message RegistryHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RegistryHeader message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RegistryHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader; + + /** + * Decodes a RegistryHeader message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RegistryHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader; + + /** + * Verifies a RegistryHeader message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RegistryHeader message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RegistryHeader + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader; + + /** + * Creates a plain object from a RegistryHeader message. Also converts values to other types if specified. + * @param message RegistryHeader + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RegistryHeader to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RegistryHeader + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** HostCapability enum. */ + enum HostCapability { + HOST_CAPABILITY_UNSPECIFIED = 0, + HOST_CAPABILITY_PULL = 1, + HOST_CAPABILITY_RESOLVE = 2, + HOST_CAPABILITY_PUSH = 3 + } + + /** Properties of a HostConfig. */ + interface IHostConfig { + + /** HostConfig host */ + host?: (string|null); + + /** HostConfig capabilities */ + capabilities?: (google.container.v1.ContainerdConfig.RegistryHostConfig.HostCapability[]|null); + + /** HostConfig overridePath */ + overridePath?: (boolean|null); + + /** HostConfig header */ + header?: (google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader[]|null); + + /** HostConfig ca */ + ca?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig[]|null); + + /** HostConfig client */ + client?: (google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair[]|null); + + /** HostConfig dialTimeout */ + dialTimeout?: (google.protobuf.IDuration|null); + } + + /** Represents a HostConfig. */ + class HostConfig implements IHostConfig { + + /** + * Constructs a new HostConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig); + + /** HostConfig host. */ + public host: string; + + /** HostConfig capabilities. */ + public capabilities: google.container.v1.ContainerdConfig.RegistryHostConfig.HostCapability[]; + + /** HostConfig overridePath. */ + public overridePath: boolean; + + /** HostConfig header. */ + public header: google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader[]; + + /** HostConfig ca. */ + public ca: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig[]; + + /** HostConfig client. */ + public client: google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair[]; + + /** HostConfig dialTimeout. */ + public dialTimeout?: (google.protobuf.IDuration|null); + + /** + * Creates a new HostConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns HostConfig instance + */ + public static create(properties?: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig): google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig; + + /** + * Encodes the specified HostConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages. + * @param message HostConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified HostConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages. + * @param message HostConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a HostConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns HostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig; + + /** + * Decodes a HostConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns HostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig; + + /** + * Verifies a HostConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a HostConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns HostConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig; + + /** + * Creates a plain object from a HostConfig message. Also converts values to other types if specified. + * @param message HostConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this HostConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for HostConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } } /** Properties of a NodeTaint. */ @@ -4991,6 +6113,9 @@ export namespace google { /** AddonsConfig lustreCsiDriverConfig */ lustreCsiDriverConfig?: (google.container.v1.ILustreCsiDriverConfig|null); + + /** AddonsConfig sliceControllerConfig */ + sliceControllerConfig?: (google.container.v1.ISliceControllerConfig|null); } /** Represents an AddonsConfig. */ @@ -5050,6 +6175,9 @@ export namespace google { /** AddonsConfig lustreCsiDriverConfig. */ public lustreCsiDriverConfig?: (google.container.v1.ILustreCsiDriverConfig|null); + /** AddonsConfig sliceControllerConfig. */ + public sliceControllerConfig?: (google.container.v1.ISliceControllerConfig|null); + /** * Creates a new AddonsConfig instance using the specified properties. * @param [properties] Properties to set @@ -6750,6 +7878,103 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a SliceControllerConfig. */ + interface ISliceControllerConfig { + + /** SliceControllerConfig enabled */ + enabled?: (boolean|null); + } + + /** Represents a SliceControllerConfig. */ + class SliceControllerConfig implements ISliceControllerConfig { + + /** + * Constructs a new SliceControllerConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.ISliceControllerConfig); + + /** SliceControllerConfig enabled. */ + public enabled: boolean; + + /** + * Creates a new SliceControllerConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns SliceControllerConfig instance + */ + public static create(properties?: google.container.v1.ISliceControllerConfig): google.container.v1.SliceControllerConfig; + + /** + * Encodes the specified SliceControllerConfig message. Does not implicitly {@link google.container.v1.SliceControllerConfig.verify|verify} messages. + * @param message SliceControllerConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.ISliceControllerConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SliceControllerConfig message, length delimited. Does not implicitly {@link google.container.v1.SliceControllerConfig.verify|verify} messages. + * @param message SliceControllerConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.ISliceControllerConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SliceControllerConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SliceControllerConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.SliceControllerConfig; + + /** + * Decodes a SliceControllerConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SliceControllerConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.SliceControllerConfig; + + /** + * Verifies a SliceControllerConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SliceControllerConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SliceControllerConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.SliceControllerConfig; + + /** + * Creates a plain object from a SliceControllerConfig message. Also converts values to other types if specified. + * @param message SliceControllerConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.SliceControllerConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SliceControllerConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SliceControllerConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a RayOperatorConfig. */ interface IRayOperatorConfig { @@ -8158,6 +9383,9 @@ export namespace google { /** Cluster anonymousAuthenticationConfig */ anonymousAuthenticationConfig?: (google.container.v1.IAnonymousAuthenticationConfig|null); + + /** Cluster managedOpentelemetryConfig */ + managedOpentelemetryConfig?: (google.container.v1.IManagedOpenTelemetryConfig|null); } /** Represents a Cluster. */ @@ -8403,6 +9631,9 @@ export namespace google { /** Cluster anonymousAuthenticationConfig. */ public anonymousAuthenticationConfig?: (google.container.v1.IAnonymousAuthenticationConfig|null); + /** Cluster managedOpentelemetryConfig. */ + public managedOpentelemetryConfig?: (google.container.v1.IManagedOpenTelemetryConfig|null); + /** * Creates a new Cluster instance using the specified properties. * @param [properties] Properties to set @@ -8622,6 +9853,9 @@ export namespace google { /** UserManagedKeysConfig controlPlaneDiskEncryptionKey */ controlPlaneDiskEncryptionKey?: (string|null); + /** UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions */ + controlPlaneDiskEncryptionKeyVersions?: (string[]|null); + /** UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey */ gkeopsEtcdBackupEncryptionKey?: (string|null); } @@ -8656,6 +9890,9 @@ export namespace google { /** UserManagedKeysConfig controlPlaneDiskEncryptionKey. */ public controlPlaneDiskEncryptionKey: string; + /** UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions. */ + public controlPlaneDiskEncryptionKeyVersions: string[]; + /** UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey. */ public gkeopsEtcdBackupEncryptionKey: string; @@ -9818,6 +11055,12 @@ export namespace google { /** ClusterUpdate desiredNetworkTierConfig */ desiredNetworkTierConfig?: (google.container.v1.INetworkTierConfig|null); + + /** ClusterUpdate desiredPrivilegedAdmissionConfig */ + desiredPrivilegedAdmissionConfig?: (google.container.v1.IPrivilegedAdmissionConfig|null); + + /** ClusterUpdate desiredManagedOpentelemetryConfig */ + desiredManagedOpentelemetryConfig?: (google.container.v1.IManagedOpenTelemetryConfig|null); } /** Represents a ClusterUpdate. */ @@ -10045,6 +11288,12 @@ export namespace google { /** ClusterUpdate desiredNetworkTierConfig. */ public desiredNetworkTierConfig?: (google.container.v1.INetworkTierConfig|null); + /** ClusterUpdate desiredPrivilegedAdmissionConfig. */ + public desiredPrivilegedAdmissionConfig?: (google.container.v1.IPrivilegedAdmissionConfig|null); + + /** ClusterUpdate desiredManagedOpentelemetryConfig. */ + public desiredManagedOpentelemetryConfig?: (google.container.v1.IManagedOpenTelemetryConfig|null); + /** * Creates a new ClusterUpdate instance using the specified properties. * @param [properties] Properties to set @@ -10234,6 +11483,9 @@ export namespace google { /** AdditionalIPRangesConfig podIpv4RangeNames */ podIpv4RangeNames?: (string[]|null); + + /** AdditionalIPRangesConfig status */ + status?: (google.container.v1.AdditionalIPRangesConfig.Status|keyof typeof google.container.v1.AdditionalIPRangesConfig.Status|null); } /** Represents an AdditionalIPRangesConfig. */ @@ -10251,6 +11503,9 @@ export namespace google { /** AdditionalIPRangesConfig podIpv4RangeNames. */ public podIpv4RangeNames: string[]; + /** AdditionalIPRangesConfig status. */ + public status: (google.container.v1.AdditionalIPRangesConfig.Status|keyof typeof google.container.v1.AdditionalIPRangesConfig.Status); + /** * Creates a new AdditionalIPRangesConfig instance using the specified properties. * @param [properties] Properties to set @@ -10329,6 +11584,16 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + namespace AdditionalIPRangesConfig { + + /** Status enum. */ + enum Status { + STATUS_UNSPECIFIED = 0, + ACTIVE = 1, + DRAINING = 2 + } + } + /** Properties of a DesiredAdditionalIPRangesConfig. */ interface IDesiredAdditionalIPRangesConfig { @@ -11633,6 +12898,12 @@ export namespace google { /** UpdateNodePoolRequest bootDisk */ bootDisk?: (google.container.v1.IBootDisk|null); + + /** UpdateNodePoolRequest nodeDrainConfig */ + nodeDrainConfig?: (google.container.v1.NodePool.INodeDrainConfig|null); + + /** UpdateNodePoolRequest consolidationDelay */ + consolidationDelay?: (google.protobuf.IDuration|null); } /** Represents an UpdateNodePoolRequest. */ @@ -11749,6 +13020,12 @@ export namespace google { /** UpdateNodePoolRequest bootDisk. */ public bootDisk?: (google.container.v1.IBootDisk|null); + /** UpdateNodePoolRequest nodeDrainConfig. */ + public nodeDrainConfig?: (google.container.v1.NodePool.INodeDrainConfig|null); + + /** UpdateNodePoolRequest consolidationDelay. */ + public consolidationDelay?: (google.protobuf.IDuration|null); + /** * Creates a new UpdateNodePoolRequest instance using the specified properties. * @param [properties] Properties to set @@ -14687,6 +15964,9 @@ export namespace google { /** NodePool bestEffortProvisioning */ bestEffortProvisioning?: (google.container.v1.IBestEffortProvisioning|null); + + /** NodePool nodeDrainConfig */ + nodeDrainConfig?: (google.container.v1.NodePool.INodeDrainConfig|null); } /** Represents a NodePool. */ @@ -14761,6 +16041,9 @@ export namespace google { /** NodePool bestEffortProvisioning. */ public bestEffortProvisioning?: (google.container.v1.IBestEffortProvisioning|null); + /** NodePool nodeDrainConfig. */ + public nodeDrainConfig?: (google.container.v1.NodePool.INodeDrainConfig|null); + /** * Creates a new NodePool instance using the specified properties. * @param [properties] Properties to set @@ -15417,6 +16700,103 @@ export namespace google { */ public static getTypeUrl(typeUrlPrefix?: string): string; } + + /** Properties of a NodeDrainConfig. */ + interface INodeDrainConfig { + + /** NodeDrainConfig respectPdbDuringNodePoolDeletion */ + respectPdbDuringNodePoolDeletion?: (boolean|null); + } + + /** Represents a NodeDrainConfig. */ + class NodeDrainConfig implements INodeDrainConfig { + + /** + * Constructs a new NodeDrainConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.NodePool.INodeDrainConfig); + + /** NodeDrainConfig respectPdbDuringNodePoolDeletion. */ + public respectPdbDuringNodePoolDeletion?: (boolean|null); + + /** + * Creates a new NodeDrainConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns NodeDrainConfig instance + */ + public static create(properties?: google.container.v1.NodePool.INodeDrainConfig): google.container.v1.NodePool.NodeDrainConfig; + + /** + * Encodes the specified NodeDrainConfig message. Does not implicitly {@link google.container.v1.NodePool.NodeDrainConfig.verify|verify} messages. + * @param message NodeDrainConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.NodePool.INodeDrainConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified NodeDrainConfig message, length delimited. Does not implicitly {@link google.container.v1.NodePool.NodeDrainConfig.verify|verify} messages. + * @param message NodeDrainConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.NodePool.INodeDrainConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NodeDrainConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns NodeDrainConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.NodePool.NodeDrainConfig; + + /** + * Decodes a NodeDrainConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns NodeDrainConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.NodePool.NodeDrainConfig; + + /** + * Verifies a NodeDrainConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a NodeDrainConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns NodeDrainConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.NodePool.NodeDrainConfig; + + /** + * Creates a plain object from a NodeDrainConfig message. Also converts values to other types if specified. + * @param message NodeDrainConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.NodePool.NodeDrainConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this NodeDrainConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for NodeDrainConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } /** Properties of a NodeManagement. */ @@ -16981,6 +18361,9 @@ export namespace google { /** ClusterAutoscaling defaultComputeClassConfig */ defaultComputeClassConfig?: (google.container.v1.IDefaultComputeClassConfig|null); + + /** ClusterAutoscaling autopilotGeneralProfile */ + autopilotGeneralProfile?: (google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile|keyof typeof google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile|null); } /** Represents a ClusterAutoscaling. */ @@ -17010,6 +18393,9 @@ export namespace google { /** ClusterAutoscaling defaultComputeClassConfig. */ public defaultComputeClassConfig?: (google.container.v1.IDefaultComputeClassConfig|null); + /** ClusterAutoscaling autopilotGeneralProfile. */ + public autopilotGeneralProfile: (google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile|keyof typeof google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile); + /** * Creates a new ClusterAutoscaling instance using the specified properties. * @param [properties] Properties to set @@ -17096,6 +18482,12 @@ export namespace google { OPTIMIZE_UTILIZATION = 1, BALANCED = 2 } + + /** AutopilotGeneralProfile enum. */ + enum AutopilotGeneralProfile { + AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED = 0, + NO_PERFORMANCE = 1 + } } /** Properties of an AutoprovisioningNodePoolDefaults. */ @@ -22741,6 +24133,112 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a GPUDirectConfig. */ + interface IGPUDirectConfig { + + /** GPUDirectConfig gpuDirectStrategy */ + gpuDirectStrategy?: (google.container.v1.GPUDirectConfig.GPUDirectStrategy|keyof typeof google.container.v1.GPUDirectConfig.GPUDirectStrategy|null); + } + + /** Represents a GPUDirectConfig. */ + class GPUDirectConfig implements IGPUDirectConfig { + + /** + * Constructs a new GPUDirectConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.IGPUDirectConfig); + + /** GPUDirectConfig gpuDirectStrategy. */ + public gpuDirectStrategy?: (google.container.v1.GPUDirectConfig.GPUDirectStrategy|keyof typeof google.container.v1.GPUDirectConfig.GPUDirectStrategy|null); + + /** + * Creates a new GPUDirectConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns GPUDirectConfig instance + */ + public static create(properties?: google.container.v1.IGPUDirectConfig): google.container.v1.GPUDirectConfig; + + /** + * Encodes the specified GPUDirectConfig message. Does not implicitly {@link google.container.v1.GPUDirectConfig.verify|verify} messages. + * @param message GPUDirectConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.IGPUDirectConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GPUDirectConfig message, length delimited. Does not implicitly {@link google.container.v1.GPUDirectConfig.verify|verify} messages. + * @param message GPUDirectConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.IGPUDirectConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GPUDirectConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GPUDirectConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.GPUDirectConfig; + + /** + * Decodes a GPUDirectConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GPUDirectConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.GPUDirectConfig; + + /** + * Verifies a GPUDirectConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GPUDirectConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GPUDirectConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.GPUDirectConfig; + + /** + * Creates a plain object from a GPUDirectConfig message. Also converts values to other types if specified. + * @param message GPUDirectConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.GPUDirectConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GPUDirectConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GPUDirectConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace GPUDirectConfig { + + /** GPUDirectStrategy enum. */ + enum GPUDirectStrategy { + GPU_DIRECT_STRATEGY_UNSPECIFIED = 0, + RDMA = 2 + } + } + /** PrivateIPv6GoogleAccess enum. */ enum PrivateIPv6GoogleAccess { PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0, @@ -23350,6 +24848,9 @@ export namespace google { /** UpgradeInfoEvent eventType */ eventType?: (google.container.v1.UpgradeInfoEvent.EventType|keyof typeof google.container.v1.UpgradeInfoEvent.EventType|null); + + /** UpgradeInfoEvent disruptionEvent */ + disruptionEvent?: (google.container.v1.IDisruptionEvent|null); } /** Represents an UpgradeInfoEvent. */ @@ -23397,6 +24898,9 @@ export namespace google { /** UpgradeInfoEvent eventType. */ public eventType: (google.container.v1.UpgradeInfoEvent.EventType|keyof typeof google.container.v1.UpgradeInfoEvent.EventType); + /** UpgradeInfoEvent disruptionEvent. */ + public disruptionEvent?: (google.container.v1.IDisruptionEvent|null); + /** * Creates a new UpgradeInfoEvent instance using the specified properties. * @param [properties] Properties to set @@ -23491,7 +24995,236 @@ export namespace google { EVENT_TYPE_UNSPECIFIED = 0, END_OF_SUPPORT = 1, COS_MILESTONE_VERSION_UPDATE = 2, - UPGRADE_LIFECYCLE = 3 + UPGRADE_LIFECYCLE = 3, + DISRUPTION_EVENT = 4 + } + } + + /** Properties of a DisruptionEvent. */ + interface IDisruptionEvent { + + /** DisruptionEvent disruptionType */ + disruptionType?: (google.container.v1.DisruptionEvent.DisruptionType|keyof typeof google.container.v1.DisruptionEvent.DisruptionType|null); + + /** DisruptionEvent pdbBlockedNode */ + pdbBlockedNode?: (string|null); + + /** DisruptionEvent pdbBlockedPod */ + pdbBlockedPod?: (google.container.v1.DisruptionEvent.IPdbBlockedPod[]|null); + + /** DisruptionEvent pdbViolationTimeout */ + pdbViolationTimeout?: (google.protobuf.IDuration|null); + } + + /** Represents a DisruptionEvent. */ + class DisruptionEvent implements IDisruptionEvent { + + /** + * Constructs a new DisruptionEvent. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.IDisruptionEvent); + + /** DisruptionEvent disruptionType. */ + public disruptionType: (google.container.v1.DisruptionEvent.DisruptionType|keyof typeof google.container.v1.DisruptionEvent.DisruptionType); + + /** DisruptionEvent pdbBlockedNode. */ + public pdbBlockedNode: string; + + /** DisruptionEvent pdbBlockedPod. */ + public pdbBlockedPod: google.container.v1.DisruptionEvent.IPdbBlockedPod[]; + + /** DisruptionEvent pdbViolationTimeout. */ + public pdbViolationTimeout?: (google.protobuf.IDuration|null); + + /** + * Creates a new DisruptionEvent instance using the specified properties. + * @param [properties] Properties to set + * @returns DisruptionEvent instance + */ + public static create(properties?: google.container.v1.IDisruptionEvent): google.container.v1.DisruptionEvent; + + /** + * Encodes the specified DisruptionEvent message. Does not implicitly {@link google.container.v1.DisruptionEvent.verify|verify} messages. + * @param message DisruptionEvent message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.IDisruptionEvent, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DisruptionEvent message, length delimited. Does not implicitly {@link google.container.v1.DisruptionEvent.verify|verify} messages. + * @param message DisruptionEvent message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.IDisruptionEvent, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DisruptionEvent message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DisruptionEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.DisruptionEvent; + + /** + * Decodes a DisruptionEvent message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DisruptionEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.DisruptionEvent; + + /** + * Verifies a DisruptionEvent message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DisruptionEvent message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DisruptionEvent + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.DisruptionEvent; + + /** + * Creates a plain object from a DisruptionEvent message. Also converts values to other types if specified. + * @param message DisruptionEvent + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.DisruptionEvent, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DisruptionEvent to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DisruptionEvent + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace DisruptionEvent { + + /** DisruptionType enum. */ + enum DisruptionType { + DISRUPTION_TYPE_UNSPECIFIED = 0, + POD_NOT_ENOUGH_PDB = 1, + POD_PDB_VIOLATION = 2 + } + + /** Properties of a PdbBlockedPod. */ + interface IPdbBlockedPod { + + /** PdbBlockedPod namespace */ + namespace?: (string|null); + + /** PdbBlockedPod name */ + name?: (string|null); + } + + /** Represents a PdbBlockedPod. */ + class PdbBlockedPod implements IPdbBlockedPod { + + /** + * Constructs a new PdbBlockedPod. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.DisruptionEvent.IPdbBlockedPod); + + /** PdbBlockedPod namespace. */ + public namespace: string; + + /** PdbBlockedPod name. */ + public name: string; + + /** + * Creates a new PdbBlockedPod instance using the specified properties. + * @param [properties] Properties to set + * @returns PdbBlockedPod instance + */ + public static create(properties?: google.container.v1.DisruptionEvent.IPdbBlockedPod): google.container.v1.DisruptionEvent.PdbBlockedPod; + + /** + * Encodes the specified PdbBlockedPod message. Does not implicitly {@link google.container.v1.DisruptionEvent.PdbBlockedPod.verify|verify} messages. + * @param message PdbBlockedPod message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.DisruptionEvent.IPdbBlockedPod, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PdbBlockedPod message, length delimited. Does not implicitly {@link google.container.v1.DisruptionEvent.PdbBlockedPod.verify|verify} messages. + * @param message PdbBlockedPod message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.DisruptionEvent.IPdbBlockedPod, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PdbBlockedPod message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PdbBlockedPod + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.DisruptionEvent.PdbBlockedPod; + + /** + * Decodes a PdbBlockedPod message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PdbBlockedPod + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.DisruptionEvent.PdbBlockedPod; + + /** + * Verifies a PdbBlockedPod message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PdbBlockedPod message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PdbBlockedPod + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.DisruptionEvent.PdbBlockedPod; + + /** + * Creates a plain object from a PdbBlockedPod message. Also converts values to other types if specified. + * @param message PdbBlockedPod + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.DisruptionEvent.PdbBlockedPod, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PdbBlockedPod to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PdbBlockedPod + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } @@ -25043,7 +26776,8 @@ export namespace google { enum NodePoolUpdateStrategy { NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED = 0, BLUE_GREEN = 2, - SURGE = 3 + SURGE = 3, + SHORT_LIVED = 5 } /** Properties of a ManagedPrometheusConfig. */ @@ -27672,6 +29406,113 @@ export namespace google { NETWORK_TIER_STANDARD = 3 } } + + /** Properties of a ManagedOpenTelemetryConfig. */ + interface IManagedOpenTelemetryConfig { + + /** ManagedOpenTelemetryConfig scope */ + scope?: (google.container.v1.ManagedOpenTelemetryConfig.Scope|keyof typeof google.container.v1.ManagedOpenTelemetryConfig.Scope|null); + } + + /** Represents a ManagedOpenTelemetryConfig. */ + class ManagedOpenTelemetryConfig implements IManagedOpenTelemetryConfig { + + /** + * Constructs a new ManagedOpenTelemetryConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1.IManagedOpenTelemetryConfig); + + /** ManagedOpenTelemetryConfig scope. */ + public scope?: (google.container.v1.ManagedOpenTelemetryConfig.Scope|keyof typeof google.container.v1.ManagedOpenTelemetryConfig.Scope|null); + + /** + * Creates a new ManagedOpenTelemetryConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns ManagedOpenTelemetryConfig instance + */ + public static create(properties?: google.container.v1.IManagedOpenTelemetryConfig): google.container.v1.ManagedOpenTelemetryConfig; + + /** + * Encodes the specified ManagedOpenTelemetryConfig message. Does not implicitly {@link google.container.v1.ManagedOpenTelemetryConfig.verify|verify} messages. + * @param message ManagedOpenTelemetryConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1.IManagedOpenTelemetryConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ManagedOpenTelemetryConfig message, length delimited. Does not implicitly {@link google.container.v1.ManagedOpenTelemetryConfig.verify|verify} messages. + * @param message ManagedOpenTelemetryConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1.IManagedOpenTelemetryConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ManagedOpenTelemetryConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1.ManagedOpenTelemetryConfig; + + /** + * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ManagedOpenTelemetryConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1.ManagedOpenTelemetryConfig; + + /** + * Verifies a ManagedOpenTelemetryConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ManagedOpenTelemetryConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ManagedOpenTelemetryConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1.ManagedOpenTelemetryConfig; + + /** + * Creates a plain object from a ManagedOpenTelemetryConfig message. Also converts values to other types if specified. + * @param message ManagedOpenTelemetryConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1.ManagedOpenTelemetryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ManagedOpenTelemetryConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ManagedOpenTelemetryConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ManagedOpenTelemetryConfig { + + /** Scope enum. */ + enum Scope { + SCOPE_UNSPECIFIED = 0, + NONE = 1, + COLLECTION_AND_INSTRUMENTATION_COMPONENTS = 2 + } + } } /** Namespace v1beta1. */ @@ -28214,6 +30055,20 @@ export namespace google { * @returns Promise */ public fetchNodePoolUpgradeInfo(request: google.container.v1beta1.IFetchNodePoolUpgradeInfoRequest): Promise; + + /** + * Calls CompleteControlPlaneUpgrade. + * @param request CompleteControlPlaneUpgradeRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public completeControlPlaneUpgrade(request: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, callback: google.container.v1beta1.ClusterManager.CompleteControlPlaneUpgradeCallback): void; + + /** + * Calls CompleteControlPlaneUpgrade. + * @param request CompleteControlPlaneUpgradeRequest message or plain object + * @returns Promise + */ + public completeControlPlaneUpgrade(request: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest): Promise; } namespace ClusterManager { @@ -28476,6 +30331,116 @@ export namespace google { * @param [response] NodePoolUpgradeInfo */ type FetchNodePoolUpgradeInfoCallback = (error: (Error|null), response?: google.container.v1beta1.NodePoolUpgradeInfo) => void; + + /** + * Callback as used by {@link google.container.v1beta1.ClusterManager|completeControlPlaneUpgrade}. + * @param error Error, if any + * @param [response] Operation + */ + type CompleteControlPlaneUpgradeCallback = (error: (Error|null), response?: google.container.v1beta1.Operation) => void; + } + + /** Properties of a CompleteControlPlaneUpgradeRequest. */ + interface ICompleteControlPlaneUpgradeRequest { + + /** CompleteControlPlaneUpgradeRequest name */ + name?: (string|null); + + /** CompleteControlPlaneUpgradeRequest version */ + version?: (string|null); + } + + /** Represents a CompleteControlPlaneUpgradeRequest. */ + class CompleteControlPlaneUpgradeRequest implements ICompleteControlPlaneUpgradeRequest { + + /** + * Constructs a new CompleteControlPlaneUpgradeRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest); + + /** CompleteControlPlaneUpgradeRequest name. */ + public name: string; + + /** CompleteControlPlaneUpgradeRequest version. */ + public version: string; + + /** + * Creates a new CompleteControlPlaneUpgradeRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns CompleteControlPlaneUpgradeRequest instance + */ + public static create(properties?: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest): google.container.v1beta1.CompleteControlPlaneUpgradeRequest; + + /** + * Encodes the specified CompleteControlPlaneUpgradeRequest message. Does not implicitly {@link google.container.v1beta1.CompleteControlPlaneUpgradeRequest.verify|verify} messages. + * @param message CompleteControlPlaneUpgradeRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CompleteControlPlaneUpgradeRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CompleteControlPlaneUpgradeRequest.verify|verify} messages. + * @param message CompleteControlPlaneUpgradeRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CompleteControlPlaneUpgradeRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CompleteControlPlaneUpgradeRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CompleteControlPlaneUpgradeRequest; + + /** + * Decodes a CompleteControlPlaneUpgradeRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CompleteControlPlaneUpgradeRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CompleteControlPlaneUpgradeRequest; + + /** + * Verifies a CompleteControlPlaneUpgradeRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CompleteControlPlaneUpgradeRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CompleteControlPlaneUpgradeRequest + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CompleteControlPlaneUpgradeRequest; + + /** + * Creates a plain object from a CompleteControlPlaneUpgradeRequest message. Also converts values to other types if specified. + * @param message CompleteControlPlaneUpgradeRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.CompleteControlPlaneUpgradeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CompleteControlPlaneUpgradeRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CompleteControlPlaneUpgradeRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a LinuxNodeConfig. */ @@ -29551,6 +31516,12 @@ export namespace google { /** NodeKubeletConfig singleProcessOomKill */ singleProcessOomKill?: (boolean|null); + + /** NodeKubeletConfig shutdownGracePeriodSeconds */ + shutdownGracePeriodSeconds?: (number|null); + + /** NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds */ + shutdownGracePeriodCriticalPodsSeconds?: (number|null); } /** Represents a NodeKubeletConfig. */ @@ -29622,6 +31593,12 @@ export namespace google { /** NodeKubeletConfig singleProcessOomKill. */ public singleProcessOomKill?: (boolean|null); + /** NodeKubeletConfig shutdownGracePeriodSeconds. */ + public shutdownGracePeriodSeconds?: (number|null); + + /** NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds. */ + public shutdownGracePeriodCriticalPodsSeconds?: (number|null); + /** * Creates a new NodeKubeletConfig instance using the specified properties. * @param [properties] Properties to set @@ -30410,6 +32387,9 @@ export namespace google { /** NodeConfig secondaryBootDiskUpdateStrategy */ secondaryBootDiskUpdateStrategy?: (google.container.v1beta1.ISecondaryBootDiskUpdateStrategy|null); + /** NodeConfig gpuDirectConfig */ + gpuDirectConfig?: (google.container.v1beta1.IGPUDirectConfig|null); + /** NodeConfig maxRunDuration */ maxRunDuration?: (google.protobuf.IDuration|null); @@ -30424,6 +32404,9 @@ export namespace google { /** NodeConfig bootDisk */ bootDisk?: (google.container.v1beta1.IBootDisk|null); + + /** NodeConfig consolidationDelay */ + consolidationDelay?: (google.protobuf.IDuration|null); } /** Represents a NodeConfig. */ @@ -30561,6 +32544,9 @@ export namespace google { /** NodeConfig secondaryBootDiskUpdateStrategy. */ public secondaryBootDiskUpdateStrategy?: (google.container.v1beta1.ISecondaryBootDiskUpdateStrategy|null); + /** NodeConfig gpuDirectConfig. */ + public gpuDirectConfig?: (google.container.v1beta1.IGPUDirectConfig|null); + /** NodeConfig maxRunDuration. */ public maxRunDuration?: (google.protobuf.IDuration|null); @@ -30576,6 +32562,9 @@ export namespace google { /** NodeConfig bootDisk. */ public bootDisk?: (google.container.v1beta1.IBootDisk|null); + /** NodeConfig consolidationDelay. */ + public consolidationDelay?: (google.protobuf.IDuration|null); + /** * Creates a new NodeConfig instance using the specified properties. * @param [properties] Properties to set @@ -32243,6 +34232,9 @@ export namespace google { /** ContainerdConfig writableCgroups */ writableCgroups?: (google.container.v1beta1.ContainerdConfig.IWritableCgroups|null); + + /** ContainerdConfig registryHosts */ + registryHosts?: (google.container.v1beta1.ContainerdConfig.IRegistryHostConfig[]|null); } /** Represents a ContainerdConfig. */ @@ -32260,6 +34252,9 @@ export namespace google { /** ContainerdConfig writableCgroups. */ public writableCgroups?: (google.container.v1beta1.ContainerdConfig.IWritableCgroups|null); + /** ContainerdConfig registryHosts. */ + public registryHosts: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig[]; + /** * Creates a new ContainerdConfig instance using the specified properties. * @param [properties] Properties to set @@ -32748,6 +34743,559 @@ export namespace google { */ public static getTypeUrl(typeUrlPrefix?: string): string; } + + /** Properties of a RegistryHostConfig. */ + interface IRegistryHostConfig { + + /** RegistryHostConfig server */ + server?: (string|null); + + /** RegistryHostConfig hosts */ + hosts?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig[]|null); + } + + /** Represents a RegistryHostConfig. */ + class RegistryHostConfig implements IRegistryHostConfig { + + /** + * Constructs a new RegistryHostConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig); + + /** RegistryHostConfig server. */ + public server: string; + + /** RegistryHostConfig hosts. */ + public hosts: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig[]; + + /** + * Creates a new RegistryHostConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns RegistryHostConfig instance + */ + public static create(properties?: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig): google.container.v1beta1.ContainerdConfig.RegistryHostConfig; + + /** + * Encodes the specified RegistryHostConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.verify|verify} messages. + * @param message RegistryHostConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RegistryHostConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.verify|verify} messages. + * @param message RegistryHostConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.IRegistryHostConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RegistryHostConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RegistryHostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig; + + /** + * Decodes a RegistryHostConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RegistryHostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig; + + /** + * Verifies a RegistryHostConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RegistryHostConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RegistryHostConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig; + + /** + * Creates a plain object from a RegistryHostConfig message. Also converts values to other types if specified. + * @param message RegistryHostConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RegistryHostConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RegistryHostConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace RegistryHostConfig { + + /** Properties of a CertificateConfig. */ + interface ICertificateConfig { + + /** CertificateConfig gcpSecretManagerSecretUri */ + gcpSecretManagerSecretUri?: (string|null); + } + + /** Represents a CertificateConfig. */ + class CertificateConfig implements ICertificateConfig { + + /** + * Constructs a new CertificateConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig); + + /** CertificateConfig gcpSecretManagerSecretUri. */ + public gcpSecretManagerSecretUri?: (string|null); + + /** CertificateConfig certificate. */ + public certificate?: "gcpSecretManagerSecretUri"; + + /** + * Creates a new CertificateConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns CertificateConfig instance + */ + public static create(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig; + + /** + * Encodes the specified CertificateConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages. + * @param message CertificateConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CertificateConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages. + * @param message CertificateConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CertificateConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CertificateConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig; + + /** + * Decodes a CertificateConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CertificateConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig; + + /** + * Verifies a CertificateConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CertificateConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CertificateConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig; + + /** + * Creates a plain object from a CertificateConfig message. Also converts values to other types if specified. + * @param message CertificateConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CertificateConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CertificateConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CertificateConfigPair. */ + interface ICertificateConfigPair { + + /** CertificateConfigPair cert */ + cert?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null); + + /** CertificateConfigPair key */ + key?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null); + } + + /** Represents a CertificateConfigPair. */ + class CertificateConfigPair implements ICertificateConfigPair { + + /** + * Constructs a new CertificateConfigPair. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair); + + /** CertificateConfigPair cert. */ + public cert?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null); + + /** CertificateConfigPair key. */ + public key?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null); + + /** + * Creates a new CertificateConfigPair instance using the specified properties. + * @param [properties] Properties to set + * @returns CertificateConfigPair instance + */ + public static create(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair; + + /** + * Encodes the specified CertificateConfigPair message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages. + * @param message CertificateConfigPair message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CertificateConfigPair message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages. + * @param message CertificateConfigPair message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CertificateConfigPair message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CertificateConfigPair + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair; + + /** + * Decodes a CertificateConfigPair message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CertificateConfigPair + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair; + + /** + * Verifies a CertificateConfigPair message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CertificateConfigPair message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CertificateConfigPair + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair; + + /** + * Creates a plain object from a CertificateConfigPair message. Also converts values to other types if specified. + * @param message CertificateConfigPair + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CertificateConfigPair to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CertificateConfigPair + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a RegistryHeader. */ + interface IRegistryHeader { + + /** RegistryHeader key */ + key?: (string|null); + + /** RegistryHeader value */ + value?: (string[]|null); + } + + /** Represents a RegistryHeader. */ + class RegistryHeader implements IRegistryHeader { + + /** + * Constructs a new RegistryHeader. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader); + + /** RegistryHeader key. */ + public key: string; + + /** RegistryHeader value. */ + public value: string[]; + + /** + * Creates a new RegistryHeader instance using the specified properties. + * @param [properties] Properties to set + * @returns RegistryHeader instance + */ + public static create(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader; + + /** + * Encodes the specified RegistryHeader message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages. + * @param message RegistryHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RegistryHeader message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages. + * @param message RegistryHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RegistryHeader message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RegistryHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader; + + /** + * Decodes a RegistryHeader message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RegistryHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader; + + /** + * Verifies a RegistryHeader message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RegistryHeader message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RegistryHeader + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader; + + /** + * Creates a plain object from a RegistryHeader message. Also converts values to other types if specified. + * @param message RegistryHeader + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RegistryHeader to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RegistryHeader + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** HostCapability enum. */ + enum HostCapability { + HOST_CAPABILITY_UNSPECIFIED = 0, + HOST_CAPABILITY_PULL = 1, + HOST_CAPABILITY_RESOLVE = 2, + HOST_CAPABILITY_PUSH = 3 + } + + /** Properties of a HostConfig. */ + interface IHostConfig { + + /** HostConfig host */ + host?: (string|null); + + /** HostConfig capabilities */ + capabilities?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostCapability[]|null); + + /** HostConfig overridePath */ + overridePath?: (boolean|null); + + /** HostConfig header */ + header?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader[]|null); + + /** HostConfig ca */ + ca?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig[]|null); + + /** HostConfig client */ + client?: (google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair[]|null); + + /** HostConfig dialTimeout */ + dialTimeout?: (google.protobuf.IDuration|null); + } + + /** Represents a HostConfig. */ + class HostConfig implements IHostConfig { + + /** + * Constructs a new HostConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig); + + /** HostConfig host. */ + public host: string; + + /** HostConfig capabilities. */ + public capabilities: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostCapability[]; + + /** HostConfig overridePath. */ + public overridePath: boolean; + + /** HostConfig header. */ + public header: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader[]; + + /** HostConfig ca. */ + public ca: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig[]; + + /** HostConfig client. */ + public client: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair[]; + + /** HostConfig dialTimeout. */ + public dialTimeout?: (google.protobuf.IDuration|null); + + /** + * Creates a new HostConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns HostConfig instance + */ + public static create(properties?: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig; + + /** + * Encodes the specified HostConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages. + * @param message HostConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified HostConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages. + * @param message HostConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a HostConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns HostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig; + + /** + * Decodes a HostConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns HostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig; + + /** + * Verifies a HostConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a HostConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns HostConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig; + + /** + * Creates a plain object from a HostConfig message. Also converts values to other types if specified. + * @param message HostConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this HostConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for HostConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } } /** Properties of a HostMaintenancePolicy. */ @@ -33763,6 +36311,12 @@ export namespace google { /** AddonsConfig lustreCsiDriverConfig */ lustreCsiDriverConfig?: (google.container.v1beta1.ILustreCsiDriverConfig|null); + + /** AddonsConfig podSnapshotConfig */ + podSnapshotConfig?: (google.container.v1beta1.IPodSnapshotConfig|null); + + /** AddonsConfig sliceControllerConfig */ + sliceControllerConfig?: (google.container.v1beta1.ISliceControllerConfig|null); } /** Represents an AddonsConfig. */ @@ -33828,6 +36382,12 @@ export namespace google { /** AddonsConfig lustreCsiDriverConfig. */ public lustreCsiDriverConfig?: (google.container.v1beta1.ILustreCsiDriverConfig|null); + /** AddonsConfig podSnapshotConfig. */ + public podSnapshotConfig?: (google.container.v1beta1.IPodSnapshotConfig|null); + + /** AddonsConfig sliceControllerConfig. */ + public sliceControllerConfig?: (google.container.v1beta1.ISliceControllerConfig|null); + /** * Creates a new AddonsConfig instance using the specified properties. * @param [properties] Properties to set @@ -35367,6 +37927,103 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a SliceControllerConfig. */ + interface ISliceControllerConfig { + + /** SliceControllerConfig enabled */ + enabled?: (boolean|null); + } + + /** Represents a SliceControllerConfig. */ + class SliceControllerConfig implements ISliceControllerConfig { + + /** + * Constructs a new SliceControllerConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.ISliceControllerConfig); + + /** SliceControllerConfig enabled. */ + public enabled: boolean; + + /** + * Creates a new SliceControllerConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns SliceControllerConfig instance + */ + public static create(properties?: google.container.v1beta1.ISliceControllerConfig): google.container.v1beta1.SliceControllerConfig; + + /** + * Encodes the specified SliceControllerConfig message. Does not implicitly {@link google.container.v1beta1.SliceControllerConfig.verify|verify} messages. + * @param message SliceControllerConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.ISliceControllerConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SliceControllerConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SliceControllerConfig.verify|verify} messages. + * @param message SliceControllerConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.ISliceControllerConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SliceControllerConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SliceControllerConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.SliceControllerConfig; + + /** + * Decodes a SliceControllerConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SliceControllerConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.SliceControllerConfig; + + /** + * Verifies a SliceControllerConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SliceControllerConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SliceControllerConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.SliceControllerConfig; + + /** + * Creates a plain object from a SliceControllerConfig message. Also converts values to other types if specified. + * @param message SliceControllerConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.SliceControllerConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SliceControllerConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SliceControllerConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a RayOperatorConfig. */ interface IRayOperatorConfig { @@ -37398,6 +40055,12 @@ export namespace google { /** Cluster currentMasterVersion */ currentMasterVersion?: (string|null); + /** Cluster currentEmulatedVersion */ + currentEmulatedVersion?: (string|null); + + /** Cluster rollbackSafeUpgrade */ + rollbackSafeUpgrade?: (google.container.v1beta1.IRollbackSafeUpgrade|null); + /** Cluster currentNodeVersion */ currentNodeVersion?: (string|null); @@ -37508,6 +40171,9 @@ export namespace google { /** Cluster secretSyncConfig */ secretSyncConfig?: (google.container.v1beta1.ISecretSyncConfig|null); + + /** Cluster managedOpentelemetryConfig */ + managedOpentelemetryConfig?: (google.container.v1beta1.IManagedOpenTelemetryConfig|null); } /** Represents a Cluster. */ @@ -37672,6 +40338,12 @@ export namespace google { /** Cluster currentMasterVersion. */ public currentMasterVersion: string; + /** Cluster currentEmulatedVersion. */ + public currentEmulatedVersion: string; + + /** Cluster rollbackSafeUpgrade. */ + public rollbackSafeUpgrade?: (google.container.v1beta1.IRollbackSafeUpgrade|null); + /** Cluster currentNodeVersion. */ public currentNodeVersion: string; @@ -37783,6 +40455,9 @@ export namespace google { /** Cluster secretSyncConfig. */ public secretSyncConfig?: (google.container.v1beta1.ISecretSyncConfig|null); + /** Cluster managedOpentelemetryConfig. */ + public managedOpentelemetryConfig?: (google.container.v1beta1.IManagedOpenTelemetryConfig|null); + /** * Creates a new Cluster instance using the specified properties. * @param [properties] Properties to set @@ -38002,6 +40677,9 @@ export namespace google { /** UserManagedKeysConfig controlPlaneDiskEncryptionKey */ controlPlaneDiskEncryptionKey?: (string|null); + /** UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions */ + controlPlaneDiskEncryptionKeyVersions?: (string[]|null); + /** UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey */ gkeopsEtcdBackupEncryptionKey?: (string|null); } @@ -38036,6 +40714,9 @@ export namespace google { /** UserManagedKeysConfig controlPlaneDiskEncryptionKey. */ public controlPlaneDiskEncryptionKey: string; + /** UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions. */ + public controlPlaneDiskEncryptionKeyVersions: string[]; + /** UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey. */ public gkeopsEtcdBackupEncryptionKey: string; @@ -39456,6 +42137,15 @@ export namespace google { /** ClusterUpdate desiredSecretSyncConfig */ desiredSecretSyncConfig?: (google.container.v1beta1.ISecretSyncConfig|null); + + /** ClusterUpdate desiredPrivilegedAdmissionConfig */ + desiredPrivilegedAdmissionConfig?: (google.container.v1beta1.IPrivilegedAdmissionConfig|null); + + /** ClusterUpdate desiredRollbackSafeUpgrade */ + desiredRollbackSafeUpgrade?: (google.container.v1beta1.IRollbackSafeUpgrade|null); + + /** ClusterUpdate desiredManagedOpentelemetryConfig */ + desiredManagedOpentelemetryConfig?: (google.container.v1beta1.IManagedOpenTelemetryConfig|null); } /** Represents a ClusterUpdate. */ @@ -39713,6 +42403,15 @@ export namespace google { /** ClusterUpdate desiredSecretSyncConfig. */ public desiredSecretSyncConfig?: (google.container.v1beta1.ISecretSyncConfig|null); + /** ClusterUpdate desiredPrivilegedAdmissionConfig. */ + public desiredPrivilegedAdmissionConfig?: (google.container.v1beta1.IPrivilegedAdmissionConfig|null); + + /** ClusterUpdate desiredRollbackSafeUpgrade. */ + public desiredRollbackSafeUpgrade?: (google.container.v1beta1.IRollbackSafeUpgrade|null); + + /** ClusterUpdate desiredManagedOpentelemetryConfig. */ + public desiredManagedOpentelemetryConfig?: (google.container.v1beta1.IManagedOpenTelemetryConfig|null); + /** * Creates a new ClusterUpdate instance using the specified properties. * @param [properties] Properties to set @@ -39902,6 +42601,9 @@ export namespace google { /** AdditionalIPRangesConfig podIpv4RangeNames */ podIpv4RangeNames?: (string[]|null); + + /** AdditionalIPRangesConfig status */ + status?: (google.container.v1beta1.AdditionalIPRangesConfig.Status|keyof typeof google.container.v1beta1.AdditionalIPRangesConfig.Status|null); } /** Represents an AdditionalIPRangesConfig. */ @@ -39919,6 +42621,9 @@ export namespace google { /** AdditionalIPRangesConfig podIpv4RangeNames. */ public podIpv4RangeNames: string[]; + /** AdditionalIPRangesConfig status. */ + public status: (google.container.v1beta1.AdditionalIPRangesConfig.Status|keyof typeof google.container.v1beta1.AdditionalIPRangesConfig.Status); + /** * Creates a new AdditionalIPRangesConfig instance using the specified properties. * @param [properties] Properties to set @@ -39997,6 +42702,16 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + namespace AdditionalIPRangesConfig { + + /** Status enum. */ + enum Status { + STATUS_UNSPECIFIED = 0, + ACTIVE = 1, + DRAINING = 2 + } + } + /** Properties of a DesiredAdditionalIPRangesConfig. */ interface IDesiredAdditionalIPRangesConfig { @@ -41301,6 +44016,12 @@ export namespace google { /** UpdateNodePoolRequest bootDisk */ bootDisk?: (google.container.v1beta1.IBootDisk|null); + + /** UpdateNodePoolRequest nodeDrainConfig */ + nodeDrainConfig?: (google.container.v1beta1.NodePool.INodeDrainConfig|null); + + /** UpdateNodePoolRequest consolidationDelay */ + consolidationDelay?: (google.protobuf.IDuration|null); } /** Represents an UpdateNodePoolRequest. */ @@ -41417,6 +44138,12 @@ export namespace google { /** UpdateNodePoolRequest bootDisk. */ public bootDisk?: (google.container.v1beta1.IBootDisk|null); + /** UpdateNodePoolRequest nodeDrainConfig. */ + public nodeDrainConfig?: (google.container.v1beta1.NodePool.INodeDrainConfig|null); + + /** UpdateNodePoolRequest consolidationDelay. */ + public consolidationDelay?: (google.protobuf.IDuration|null); + /** * Creates a new UpdateNodePoolRequest instance using the specified properties. * @param [properties] Properties to set @@ -44785,6 +47512,9 @@ export namespace google { /** NodePool bestEffortProvisioning */ bestEffortProvisioning?: (google.container.v1beta1.IBestEffortProvisioning|null); + + /** NodePool nodeDrainConfig */ + nodeDrainConfig?: (google.container.v1beta1.NodePool.INodeDrainConfig|null); } /** Represents a NodePool. */ @@ -44859,6 +47589,9 @@ export namespace google { /** NodePool bestEffortProvisioning. */ public bestEffortProvisioning?: (google.container.v1beta1.IBestEffortProvisioning|null); + /** NodePool nodeDrainConfig. */ + public nodeDrainConfig?: (google.container.v1beta1.NodePool.INodeDrainConfig|null); + /** * Creates a new NodePool instance using the specified properties. * @param [properties] Properties to set @@ -45516,6 +48249,103 @@ export namespace google { */ public static getTypeUrl(typeUrlPrefix?: string): string; } + + /** Properties of a NodeDrainConfig. */ + interface INodeDrainConfig { + + /** NodeDrainConfig respectPdbDuringNodePoolDeletion */ + respectPdbDuringNodePoolDeletion?: (boolean|null); + } + + /** Represents a NodeDrainConfig. */ + class NodeDrainConfig implements INodeDrainConfig { + + /** + * Constructs a new NodeDrainConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.NodePool.INodeDrainConfig); + + /** NodeDrainConfig respectPdbDuringNodePoolDeletion. */ + public respectPdbDuringNodePoolDeletion?: (boolean|null); + + /** + * Creates a new NodeDrainConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns NodeDrainConfig instance + */ + public static create(properties?: google.container.v1beta1.NodePool.INodeDrainConfig): google.container.v1beta1.NodePool.NodeDrainConfig; + + /** + * Encodes the specified NodeDrainConfig message. Does not implicitly {@link google.container.v1beta1.NodePool.NodeDrainConfig.verify|verify} messages. + * @param message NodeDrainConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.NodePool.INodeDrainConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified NodeDrainConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.NodeDrainConfig.verify|verify} messages. + * @param message NodeDrainConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.NodePool.INodeDrainConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a NodeDrainConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns NodeDrainConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.NodePool.NodeDrainConfig; + + /** + * Decodes a NodeDrainConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns NodeDrainConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.NodePool.NodeDrainConfig; + + /** + * Verifies a NodeDrainConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a NodeDrainConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns NodeDrainConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.NodePool.NodeDrainConfig; + + /** + * Creates a plain object from a NodeDrainConfig message. Also converts values to other types if specified. + * @param message NodeDrainConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.NodePool.NodeDrainConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this NodeDrainConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for NodeDrainConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } /** Properties of a NodeManagement. */ @@ -46977,6 +49807,9 @@ export namespace google { /** ClusterAutoscaling defaultComputeClassConfig */ defaultComputeClassConfig?: (google.container.v1beta1.IDefaultComputeClassConfig|null); + + /** ClusterAutoscaling autopilotGeneralProfile */ + autopilotGeneralProfile?: (google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile|keyof typeof google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile|null); } /** Represents a ClusterAutoscaling. */ @@ -47006,6 +49839,9 @@ export namespace google { /** ClusterAutoscaling defaultComputeClassConfig. */ public defaultComputeClassConfig?: (google.container.v1beta1.IDefaultComputeClassConfig|null); + /** ClusterAutoscaling autopilotGeneralProfile. */ + public autopilotGeneralProfile: (google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile|keyof typeof google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile); + /** * Creates a new ClusterAutoscaling instance using the specified properties. * @param [properties] Properties to set @@ -47092,6 +49928,12 @@ export namespace google { OPTIMIZE_UTILIZATION = 1, BALANCED = 2 } + + /** AutopilotGeneralProfile enum. */ + enum AutopilotGeneralProfile { + AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED = 0, + NO_PERFORMANCE = 1 + } } /** Properties of an AutoprovisioningNodePoolDefaults. */ @@ -52282,6 +55124,112 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a GPUDirectConfig. */ + interface IGPUDirectConfig { + + /** GPUDirectConfig gpuDirectStrategy */ + gpuDirectStrategy?: (google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|keyof typeof google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|null); + } + + /** Represents a GPUDirectConfig. */ + class GPUDirectConfig implements IGPUDirectConfig { + + /** + * Constructs a new GPUDirectConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.IGPUDirectConfig); + + /** GPUDirectConfig gpuDirectStrategy. */ + public gpuDirectStrategy?: (google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|keyof typeof google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|null); + + /** + * Creates a new GPUDirectConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns GPUDirectConfig instance + */ + public static create(properties?: google.container.v1beta1.IGPUDirectConfig): google.container.v1beta1.GPUDirectConfig; + + /** + * Encodes the specified GPUDirectConfig message. Does not implicitly {@link google.container.v1beta1.GPUDirectConfig.verify|verify} messages. + * @param message GPUDirectConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.IGPUDirectConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GPUDirectConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GPUDirectConfig.verify|verify} messages. + * @param message GPUDirectConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.IGPUDirectConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GPUDirectConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GPUDirectConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.GPUDirectConfig; + + /** + * Decodes a GPUDirectConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GPUDirectConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.GPUDirectConfig; + + /** + * Verifies a GPUDirectConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GPUDirectConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GPUDirectConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.GPUDirectConfig; + + /** + * Creates a plain object from a GPUDirectConfig message. Also converts values to other types if specified. + * @param message GPUDirectConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.GPUDirectConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GPUDirectConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GPUDirectConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace GPUDirectConfig { + + /** GPUDirectStrategy enum. */ + enum GPUDirectStrategy { + GPU_DIRECT_STRATEGY_UNSPECIFIED = 0, + RDMA = 2 + } + } + /** Properties of a GetOpenIDConfigRequest. */ interface IGetOpenIDConfigRequest { @@ -53514,6 +56462,9 @@ export namespace google { /** Properties of a Master. */ interface IMaster { + + /** Master compatibilityStatus */ + compatibilityStatus?: (google.container.v1beta1.ICompatibilityStatus|null); } /** Represents a Master. */ @@ -53525,6 +56476,9 @@ export namespace google { */ constructor(properties?: google.container.v1beta1.IMaster); + /** Master compatibilityStatus. */ + public compatibilityStatus?: (google.container.v1beta1.ICompatibilityStatus|null); + /** * Creates a new Master instance using the specified properties. * @param [properties] Properties to set @@ -53603,6 +56557,206 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a CompatibilityStatus. */ + interface ICompatibilityStatus { + + /** CompatibilityStatus downgradableVersion */ + downgradableVersion?: (string|null); + + /** CompatibilityStatus emulatedVersionTime */ + emulatedVersionTime?: (google.protobuf.ITimestamp|null); + } + + /** Represents a CompatibilityStatus. */ + class CompatibilityStatus implements ICompatibilityStatus { + + /** + * Constructs a new CompatibilityStatus. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.ICompatibilityStatus); + + /** CompatibilityStatus downgradableVersion. */ + public downgradableVersion: string; + + /** CompatibilityStatus emulatedVersionTime. */ + public emulatedVersionTime?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new CompatibilityStatus instance using the specified properties. + * @param [properties] Properties to set + * @returns CompatibilityStatus instance + */ + public static create(properties?: google.container.v1beta1.ICompatibilityStatus): google.container.v1beta1.CompatibilityStatus; + + /** + * Encodes the specified CompatibilityStatus message. Does not implicitly {@link google.container.v1beta1.CompatibilityStatus.verify|verify} messages. + * @param message CompatibilityStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.ICompatibilityStatus, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CompatibilityStatus message, length delimited. Does not implicitly {@link google.container.v1beta1.CompatibilityStatus.verify|verify} messages. + * @param message CompatibilityStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.ICompatibilityStatus, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CompatibilityStatus message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CompatibilityStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.CompatibilityStatus; + + /** + * Decodes a CompatibilityStatus message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CompatibilityStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.CompatibilityStatus; + + /** + * Verifies a CompatibilityStatus message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CompatibilityStatus message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CompatibilityStatus + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.CompatibilityStatus; + + /** + * Creates a plain object from a CompatibilityStatus message. Also converts values to other types if specified. + * @param message CompatibilityStatus + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.CompatibilityStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CompatibilityStatus to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CompatibilityStatus + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a RollbackSafeUpgrade. */ + interface IRollbackSafeUpgrade { + + /** RollbackSafeUpgrade controlPlaneSoakDuration */ + controlPlaneSoakDuration?: (google.protobuf.IDuration|null); + } + + /** Represents a RollbackSafeUpgrade. */ + class RollbackSafeUpgrade implements IRollbackSafeUpgrade { + + /** + * Constructs a new RollbackSafeUpgrade. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.IRollbackSafeUpgrade); + + /** RollbackSafeUpgrade controlPlaneSoakDuration. */ + public controlPlaneSoakDuration?: (google.protobuf.IDuration|null); + + /** + * Creates a new RollbackSafeUpgrade instance using the specified properties. + * @param [properties] Properties to set + * @returns RollbackSafeUpgrade instance + */ + public static create(properties?: google.container.v1beta1.IRollbackSafeUpgrade): google.container.v1beta1.RollbackSafeUpgrade; + + /** + * Encodes the specified RollbackSafeUpgrade message. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgrade.verify|verify} messages. + * @param message RollbackSafeUpgrade message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.IRollbackSafeUpgrade, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RollbackSafeUpgrade message, length delimited. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgrade.verify|verify} messages. + * @param message RollbackSafeUpgrade message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.IRollbackSafeUpgrade, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RollbackSafeUpgrade message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RollbackSafeUpgrade + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RollbackSafeUpgrade; + + /** + * Decodes a RollbackSafeUpgrade message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RollbackSafeUpgrade + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RollbackSafeUpgrade; + + /** + * Verifies a RollbackSafeUpgrade message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RollbackSafeUpgrade message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RollbackSafeUpgrade + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RollbackSafeUpgrade; + + /** + * Creates a plain object from a RollbackSafeUpgrade message. Also converts values to other types if specified. + * @param message RollbackSafeUpgrade + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.RollbackSafeUpgrade, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RollbackSafeUpgrade to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RollbackSafeUpgrade + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of an AutopilotConversionStatus. */ interface IAutopilotConversionStatus { @@ -54643,6 +57797,9 @@ export namespace google { /** UpgradeInfoEvent eventType */ eventType?: (google.container.v1beta1.UpgradeInfoEvent.EventType|keyof typeof google.container.v1beta1.UpgradeInfoEvent.EventType|null); + + /** UpgradeInfoEvent disruptionEvent */ + disruptionEvent?: (google.container.v1beta1.IDisruptionEvent|null); } /** Represents an UpgradeInfoEvent. */ @@ -54696,6 +57853,9 @@ export namespace google { /** UpgradeInfoEvent eventType. */ public eventType: (google.container.v1beta1.UpgradeInfoEvent.EventType|keyof typeof google.container.v1beta1.UpgradeInfoEvent.EventType); + /** UpgradeInfoEvent disruptionEvent. */ + public disruptionEvent?: (google.container.v1beta1.IDisruptionEvent|null); + /** * Creates a new UpgradeInfoEvent instance using the specified properties. * @param [properties] Properties to set @@ -54790,7 +57950,236 @@ export namespace google { EVENT_TYPE_UNSPECIFIED = 0, END_OF_SUPPORT = 1, COS_MILESTONE_VERSION_UPDATE = 2, - UPGRADE_LIFECYCLE = 3 + UPGRADE_LIFECYCLE = 3, + DISRUPTION_EVENT = 4 + } + } + + /** Properties of a DisruptionEvent. */ + interface IDisruptionEvent { + + /** DisruptionEvent disruptionType */ + disruptionType?: (google.container.v1beta1.DisruptionEvent.DisruptionType|keyof typeof google.container.v1beta1.DisruptionEvent.DisruptionType|null); + + /** DisruptionEvent pdbBlockedNode */ + pdbBlockedNode?: (string|null); + + /** DisruptionEvent pdbBlockedPod */ + pdbBlockedPod?: (google.container.v1beta1.DisruptionEvent.IPdbBlockedPod[]|null); + + /** DisruptionEvent pdbViolationTimeout */ + pdbViolationTimeout?: (google.protobuf.IDuration|null); + } + + /** Represents a DisruptionEvent. */ + class DisruptionEvent implements IDisruptionEvent { + + /** + * Constructs a new DisruptionEvent. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.IDisruptionEvent); + + /** DisruptionEvent disruptionType. */ + public disruptionType: (google.container.v1beta1.DisruptionEvent.DisruptionType|keyof typeof google.container.v1beta1.DisruptionEvent.DisruptionType); + + /** DisruptionEvent pdbBlockedNode. */ + public pdbBlockedNode: string; + + /** DisruptionEvent pdbBlockedPod. */ + public pdbBlockedPod: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod[]; + + /** DisruptionEvent pdbViolationTimeout. */ + public pdbViolationTimeout?: (google.protobuf.IDuration|null); + + /** + * Creates a new DisruptionEvent instance using the specified properties. + * @param [properties] Properties to set + * @returns DisruptionEvent instance + */ + public static create(properties?: google.container.v1beta1.IDisruptionEvent): google.container.v1beta1.DisruptionEvent; + + /** + * Encodes the specified DisruptionEvent message. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.verify|verify} messages. + * @param message DisruptionEvent message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.IDisruptionEvent, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DisruptionEvent message, length delimited. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.verify|verify} messages. + * @param message DisruptionEvent message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.IDisruptionEvent, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DisruptionEvent message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DisruptionEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DisruptionEvent; + + /** + * Decodes a DisruptionEvent message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DisruptionEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DisruptionEvent; + + /** + * Verifies a DisruptionEvent message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DisruptionEvent message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DisruptionEvent + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DisruptionEvent; + + /** + * Creates a plain object from a DisruptionEvent message. Also converts values to other types if specified. + * @param message DisruptionEvent + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.DisruptionEvent, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DisruptionEvent to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DisruptionEvent + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace DisruptionEvent { + + /** DisruptionType enum. */ + enum DisruptionType { + DISRUPTION_TYPE_UNSPECIFIED = 0, + POD_NOT_ENOUGH_PDB = 1, + POD_PDB_VIOLATION = 2 + } + + /** Properties of a PdbBlockedPod. */ + interface IPdbBlockedPod { + + /** PdbBlockedPod namespace */ + namespace?: (string|null); + + /** PdbBlockedPod name */ + name?: (string|null); + } + + /** Represents a PdbBlockedPod. */ + class PdbBlockedPod implements IPdbBlockedPod { + + /** + * Constructs a new PdbBlockedPod. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod); + + /** PdbBlockedPod namespace. */ + public namespace: string; + + /** PdbBlockedPod name. */ + public name: string; + + /** + * Creates a new PdbBlockedPod instance using the specified properties. + * @param [properties] Properties to set + * @returns PdbBlockedPod instance + */ + public static create(properties?: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod): google.container.v1beta1.DisruptionEvent.PdbBlockedPod; + + /** + * Encodes the specified PdbBlockedPod message. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.PdbBlockedPod.verify|verify} messages. + * @param message PdbBlockedPod message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PdbBlockedPod message, length delimited. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.PdbBlockedPod.verify|verify} messages. + * @param message PdbBlockedPod message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.DisruptionEvent.IPdbBlockedPod, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PdbBlockedPod message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PdbBlockedPod + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.DisruptionEvent.PdbBlockedPod; + + /** + * Decodes a PdbBlockedPod message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PdbBlockedPod + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.DisruptionEvent.PdbBlockedPod; + + /** + * Verifies a PdbBlockedPod message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PdbBlockedPod message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PdbBlockedPod + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.DisruptionEvent.PdbBlockedPod; + + /** + * Creates a plain object from a PdbBlockedPod message. Also converts values to other types if specified. + * @param message PdbBlockedPod + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.DisruptionEvent.PdbBlockedPod, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PdbBlockedPod to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PdbBlockedPod + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } } @@ -55173,7 +58562,8 @@ export namespace google { enum NodePoolUpdateStrategy { NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED = 0, BLUE_GREEN = 2, - SURGE = 3 + SURGE = 3, + SHORT_LIVED = 5 } /** Properties of a LoggingConfig. */ @@ -57602,6 +60992,9 @@ export namespace google { /** ClusterUpgradeInfo endOfExtendedSupportTimestamp */ endOfExtendedSupportTimestamp?: (string|null); + + /** ClusterUpgradeInfo rollbackSafeUpgradeStatus */ + rollbackSafeUpgradeStatus?: (google.container.v1beta1.IRollbackSafeUpgradeStatus|null); } /** Represents a ClusterUpgradeInfo. */ @@ -57634,6 +61027,9 @@ export namespace google { /** ClusterUpgradeInfo endOfExtendedSupportTimestamp. */ public endOfExtendedSupportTimestamp?: (string|null); + /** ClusterUpgradeInfo rollbackSafeUpgradeStatus. */ + public rollbackSafeUpgradeStatus?: (google.container.v1beta1.IRollbackSafeUpgradeStatus|null); + /** * Creates a new ClusterUpgradeInfo instance using the specified properties. * @param [properties] Properties to set @@ -57734,6 +61130,124 @@ export namespace google { } } + /** Properties of a RollbackSafeUpgradeStatus. */ + interface IRollbackSafeUpgradeStatus { + + /** RollbackSafeUpgradeStatus mode */ + mode?: (google.container.v1beta1.RollbackSafeUpgradeStatus.Mode|keyof typeof google.container.v1beta1.RollbackSafeUpgradeStatus.Mode|null); + + /** RollbackSafeUpgradeStatus controlPlaneUpgradeRollbackEndTime */ + controlPlaneUpgradeRollbackEndTime?: (google.protobuf.ITimestamp|null); + + /** RollbackSafeUpgradeStatus previousVersion */ + previousVersion?: (string|null); + } + + /** Represents a RollbackSafeUpgradeStatus. */ + class RollbackSafeUpgradeStatus implements IRollbackSafeUpgradeStatus { + + /** + * Constructs a new RollbackSafeUpgradeStatus. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.IRollbackSafeUpgradeStatus); + + /** RollbackSafeUpgradeStatus mode. */ + public mode: (google.container.v1beta1.RollbackSafeUpgradeStatus.Mode|keyof typeof google.container.v1beta1.RollbackSafeUpgradeStatus.Mode); + + /** RollbackSafeUpgradeStatus controlPlaneUpgradeRollbackEndTime. */ + public controlPlaneUpgradeRollbackEndTime?: (google.protobuf.ITimestamp|null); + + /** RollbackSafeUpgradeStatus previousVersion. */ + public previousVersion: string; + + /** + * Creates a new RollbackSafeUpgradeStatus instance using the specified properties. + * @param [properties] Properties to set + * @returns RollbackSafeUpgradeStatus instance + */ + public static create(properties?: google.container.v1beta1.IRollbackSafeUpgradeStatus): google.container.v1beta1.RollbackSafeUpgradeStatus; + + /** + * Encodes the specified RollbackSafeUpgradeStatus message. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgradeStatus.verify|verify} messages. + * @param message RollbackSafeUpgradeStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.IRollbackSafeUpgradeStatus, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RollbackSafeUpgradeStatus message, length delimited. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgradeStatus.verify|verify} messages. + * @param message RollbackSafeUpgradeStatus message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.IRollbackSafeUpgradeStatus, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RollbackSafeUpgradeStatus message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RollbackSafeUpgradeStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.RollbackSafeUpgradeStatus; + + /** + * Decodes a RollbackSafeUpgradeStatus message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RollbackSafeUpgradeStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.RollbackSafeUpgradeStatus; + + /** + * Verifies a RollbackSafeUpgradeStatus message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RollbackSafeUpgradeStatus message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RollbackSafeUpgradeStatus + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.RollbackSafeUpgradeStatus; + + /** + * Creates a plain object from a RollbackSafeUpgradeStatus message. Also converts values to other types if specified. + * @param message RollbackSafeUpgradeStatus + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.RollbackSafeUpgradeStatus, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RollbackSafeUpgradeStatus to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for RollbackSafeUpgradeStatus + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace RollbackSafeUpgradeStatus { + + /** Mode enum. */ + enum Mode { + MODE_UNSPECIFIED = 0, + KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE = 1 + } + } + /** Properties of an UpgradeDetails. */ interface IUpgradeDetails { @@ -57754,6 +61268,12 @@ export namespace google { /** UpgradeDetails startType */ startType?: (google.container.v1beta1.UpgradeDetails.StartType|keyof typeof google.container.v1beta1.UpgradeDetails.StartType|null); + + /** UpgradeDetails initialEmulatedVersion */ + initialEmulatedVersion?: (string|null); + + /** UpgradeDetails targetEmulatedVersion */ + targetEmulatedVersion?: (string|null); } /** Represents an UpgradeDetails. */ @@ -57783,6 +61303,12 @@ export namespace google { /** UpgradeDetails startType. */ public startType: (google.container.v1beta1.UpgradeDetails.StartType|keyof typeof google.container.v1beta1.UpgradeDetails.StartType); + /** UpgradeDetails initialEmulatedVersion. */ + public initialEmulatedVersion: string; + + /** UpgradeDetails targetEmulatedVersion. */ + public targetEmulatedVersion: string; + /** * Creates a new UpgradeDetails instance using the specified properties. * @param [properties] Properties to set @@ -58558,6 +62084,210 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } } + + /** Properties of a ManagedOpenTelemetryConfig. */ + interface IManagedOpenTelemetryConfig { + + /** ManagedOpenTelemetryConfig scope */ + scope?: (google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|keyof typeof google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|null); + } + + /** Represents a ManagedOpenTelemetryConfig. */ + class ManagedOpenTelemetryConfig implements IManagedOpenTelemetryConfig { + + /** + * Constructs a new ManagedOpenTelemetryConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.IManagedOpenTelemetryConfig); + + /** ManagedOpenTelemetryConfig scope. */ + public scope?: (google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|keyof typeof google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|null); + + /** + * Creates a new ManagedOpenTelemetryConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns ManagedOpenTelemetryConfig instance + */ + public static create(properties?: google.container.v1beta1.IManagedOpenTelemetryConfig): google.container.v1beta1.ManagedOpenTelemetryConfig; + + /** + * Encodes the specified ManagedOpenTelemetryConfig message. Does not implicitly {@link google.container.v1beta1.ManagedOpenTelemetryConfig.verify|verify} messages. + * @param message ManagedOpenTelemetryConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.IManagedOpenTelemetryConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ManagedOpenTelemetryConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ManagedOpenTelemetryConfig.verify|verify} messages. + * @param message ManagedOpenTelemetryConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.IManagedOpenTelemetryConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ManagedOpenTelemetryConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.ManagedOpenTelemetryConfig; + + /** + * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ManagedOpenTelemetryConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.ManagedOpenTelemetryConfig; + + /** + * Verifies a ManagedOpenTelemetryConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ManagedOpenTelemetryConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ManagedOpenTelemetryConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.ManagedOpenTelemetryConfig; + + /** + * Creates a plain object from a ManagedOpenTelemetryConfig message. Also converts values to other types if specified. + * @param message ManagedOpenTelemetryConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.ManagedOpenTelemetryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ManagedOpenTelemetryConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ManagedOpenTelemetryConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ManagedOpenTelemetryConfig { + + /** Scope enum. */ + enum Scope { + SCOPE_UNSPECIFIED = 0, + NONE = 1, + COLLECTION_AND_INSTRUMENTATION_COMPONENTS = 2 + } + } + + /** Properties of a PodSnapshotConfig. */ + interface IPodSnapshotConfig { + + /** PodSnapshotConfig enabled */ + enabled?: (boolean|null); + } + + /** Represents a PodSnapshotConfig. */ + class PodSnapshotConfig implements IPodSnapshotConfig { + + /** + * Constructs a new PodSnapshotConfig. + * @param [properties] Properties to set + */ + constructor(properties?: google.container.v1beta1.IPodSnapshotConfig); + + /** PodSnapshotConfig enabled. */ + public enabled: boolean; + + /** + * Creates a new PodSnapshotConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns PodSnapshotConfig instance + */ + public static create(properties?: google.container.v1beta1.IPodSnapshotConfig): google.container.v1beta1.PodSnapshotConfig; + + /** + * Encodes the specified PodSnapshotConfig message. Does not implicitly {@link google.container.v1beta1.PodSnapshotConfig.verify|verify} messages. + * @param message PodSnapshotConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.container.v1beta1.IPodSnapshotConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PodSnapshotConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.PodSnapshotConfig.verify|verify} messages. + * @param message PodSnapshotConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.container.v1beta1.IPodSnapshotConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PodSnapshotConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PodSnapshotConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.container.v1beta1.PodSnapshotConfig; + + /** + * Decodes a PodSnapshotConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PodSnapshotConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.container.v1beta1.PodSnapshotConfig; + + /** + * Verifies a PodSnapshotConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PodSnapshotConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PodSnapshotConfig + */ + public static fromObject(object: { [k: string]: any }): google.container.v1beta1.PodSnapshotConfig; + + /** + * Creates a plain object from a PodSnapshotConfig message. Also converts values to other types if specified. + * @param message PodSnapshotConfig + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.container.v1beta1.PodSnapshotConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PodSnapshotConfig to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PodSnapshotConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } } diff --git a/packages/google-container/protos/protos.js b/packages/google-container/protos/protos.js index 3250b1add6d..fa93833479e 100644 --- a/packages/google-container/protos/protos.js +++ b/packages/google-container/protos/protos.js @@ -1291,6 +1291,7 @@ * @property {google.container.v1.LinuxNodeConfig.IHugepagesConfig|null} [hugepages] LinuxNodeConfig hugepages * @property {google.container.v1.LinuxNodeConfig.TransparentHugepageEnabled|null} [transparentHugepageEnabled] LinuxNodeConfig transparentHugepageEnabled * @property {google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag|null} [transparentHugepageDefrag] LinuxNodeConfig transparentHugepageDefrag + * @property {google.container.v1.LinuxNodeConfig.ISwapConfig|null} [swapConfig] LinuxNodeConfig swapConfig * @property {google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading|null} [nodeKernelModuleLoading] LinuxNodeConfig nodeKernelModuleLoading */ @@ -1350,6 +1351,14 @@ */ LinuxNodeConfig.prototype.transparentHugepageDefrag = 0; + /** + * LinuxNodeConfig swapConfig. + * @member {google.container.v1.LinuxNodeConfig.ISwapConfig|null|undefined} swapConfig + * @memberof google.container.v1.LinuxNodeConfig + * @instance + */ + LinuxNodeConfig.prototype.swapConfig = null; + /** * LinuxNodeConfig nodeKernelModuleLoading. * @member {google.container.v1.LinuxNodeConfig.INodeKernelModuleLoading|null|undefined} nodeKernelModuleLoading @@ -1367,6 +1376,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(LinuxNodeConfig.prototype, "_swapConfig", { + get: $util.oneOfGetter($oneOfFields = ["swapConfig"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new LinuxNodeConfig instance using the specified properties. * @function create @@ -1402,6 +1417,8 @@ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.transparentHugepageEnabled); if (message.transparentHugepageDefrag != null && Object.hasOwnProperty.call(message, "transparentHugepageDefrag")) writer.uint32(/* id 5, wireType 0 =*/40).int32(message.transparentHugepageDefrag); + if (message.swapConfig != null && Object.hasOwnProperty.call(message, "swapConfig")) + $root.google.container.v1.LinuxNodeConfig.SwapConfig.encode(message.swapConfig, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); if (message.nodeKernelModuleLoading != null && Object.hasOwnProperty.call(message, "nodeKernelModuleLoading")) $root.google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.encode(message.nodeKernelModuleLoading, writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim(); return writer; @@ -1479,6 +1496,10 @@ message.transparentHugepageDefrag = reader.int32(); break; } + case 12: { + message.swapConfig = $root.google.container.v1.LinuxNodeConfig.SwapConfig.decode(reader, reader.uint32()); + break; + } case 13: { message.nodeKernelModuleLoading = $root.google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.decode(reader, reader.uint32()); break; @@ -1566,6 +1587,14 @@ case 5: break; } + if (message.swapConfig != null && message.hasOwnProperty("swapConfig")) { + properties._swapConfig = 1; + { + var error = $root.google.container.v1.LinuxNodeConfig.SwapConfig.verify(message.swapConfig); + if (error) + return "swapConfig." + error; + } + } if (message.nodeKernelModuleLoading != null && message.hasOwnProperty("nodeKernelModuleLoading")) { var error = $root.google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.verify(message.nodeKernelModuleLoading); if (error) @@ -1674,6 +1703,11 @@ message.transparentHugepageDefrag = 5; break; } + if (object.swapConfig != null) { + if (typeof object.swapConfig !== "object") + throw TypeError(".google.container.v1.LinuxNodeConfig.swapConfig: object expected"); + message.swapConfig = $root.google.container.v1.LinuxNodeConfig.SwapConfig.fromObject(object.swapConfig); + } if (object.nodeKernelModuleLoading != null) { if (typeof object.nodeKernelModuleLoading !== "object") throw TypeError(".google.container.v1.LinuxNodeConfig.nodeKernelModuleLoading: object expected"); @@ -1720,6 +1754,11 @@ object.transparentHugepageEnabled = options.enums === String ? $root.google.container.v1.LinuxNodeConfig.TransparentHugepageEnabled[message.transparentHugepageEnabled] === undefined ? message.transparentHugepageEnabled : $root.google.container.v1.LinuxNodeConfig.TransparentHugepageEnabled[message.transparentHugepageEnabled] : message.transparentHugepageEnabled; if (message.transparentHugepageDefrag != null && message.hasOwnProperty("transparentHugepageDefrag")) object.transparentHugepageDefrag = options.enums === String ? $root.google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag[message.transparentHugepageDefrag] === undefined ? message.transparentHugepageDefrag : $root.google.container.v1.LinuxNodeConfig.TransparentHugepageDefrag[message.transparentHugepageDefrag] : message.transparentHugepageDefrag; + if (message.swapConfig != null && message.hasOwnProperty("swapConfig")) { + object.swapConfig = $root.google.container.v1.LinuxNodeConfig.SwapConfig.toObject(message.swapConfig, options); + if (options.oneofs) + object._swapConfig = "swapConfig"; + } if (message.nodeKernelModuleLoading != null && message.hasOwnProperty("nodeKernelModuleLoading")) object.nodeKernelModuleLoading = $root.google.container.v1.LinuxNodeConfig.NodeKernelModuleLoading.toObject(message.nodeKernelModuleLoading, options); return object; @@ -2058,6 +2097,1338 @@ return values; })(); + LinuxNodeConfig.SwapConfig = (function() { + + /** + * Properties of a SwapConfig. + * @memberof google.container.v1.LinuxNodeConfig + * @interface ISwapConfig + * @property {boolean|null} [enabled] SwapConfig enabled + * @property {google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig|null} [encryptionConfig] SwapConfig encryptionConfig + * @property {google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile|null} [bootDiskProfile] SwapConfig bootDiskProfile + * @property {google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile|null} [ephemeralLocalSsdProfile] SwapConfig ephemeralLocalSsdProfile + * @property {google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile|null} [dedicatedLocalSsdProfile] SwapConfig dedicatedLocalSsdProfile + */ + + /** + * Constructs a new SwapConfig. + * @memberof google.container.v1.LinuxNodeConfig + * @classdesc Represents a SwapConfig. + * @implements ISwapConfig + * @constructor + * @param {google.container.v1.LinuxNodeConfig.ISwapConfig=} [properties] Properties to set + */ + function SwapConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SwapConfig enabled. + * @member {boolean|null|undefined} enabled + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @instance + */ + SwapConfig.prototype.enabled = null; + + /** + * SwapConfig encryptionConfig. + * @member {google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig|null|undefined} encryptionConfig + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @instance + */ + SwapConfig.prototype.encryptionConfig = null; + + /** + * SwapConfig bootDiskProfile. + * @member {google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile|null|undefined} bootDiskProfile + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @instance + */ + SwapConfig.prototype.bootDiskProfile = null; + + /** + * SwapConfig ephemeralLocalSsdProfile. + * @member {google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile|null|undefined} ephemeralLocalSsdProfile + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @instance + */ + SwapConfig.prototype.ephemeralLocalSsdProfile = null; + + /** + * SwapConfig dedicatedLocalSsdProfile. + * @member {google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile|null|undefined} dedicatedLocalSsdProfile + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @instance + */ + SwapConfig.prototype.dedicatedLocalSsdProfile = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SwapConfig.prototype, "_enabled", { + get: $util.oneOfGetter($oneOfFields = ["enabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SwapConfig.prototype, "_encryptionConfig", { + get: $util.oneOfGetter($oneOfFields = ["encryptionConfig"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * SwapConfig performanceProfile. + * @member {"bootDiskProfile"|"ephemeralLocalSsdProfile"|"dedicatedLocalSsdProfile"|undefined} performanceProfile + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @instance + */ + Object.defineProperty(SwapConfig.prototype, "performanceProfile", { + get: $util.oneOfGetter($oneOfFields = ["bootDiskProfile", "ephemeralLocalSsdProfile", "dedicatedLocalSsdProfile"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new SwapConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {google.container.v1.LinuxNodeConfig.ISwapConfig=} [properties] Properties to set + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig} SwapConfig instance + */ + SwapConfig.create = function create(properties) { + return new SwapConfig(properties); + }; + + /** + * Encodes the specified SwapConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {google.container.v1.LinuxNodeConfig.ISwapConfig} message SwapConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SwapConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); + if (message.encryptionConfig != null && Object.hasOwnProperty.call(message, "encryptionConfig")) + $root.google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.encode(message.encryptionConfig, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.bootDiskProfile != null && Object.hasOwnProperty.call(message, "bootDiskProfile")) + $root.google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.encode(message.bootDiskProfile, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.ephemeralLocalSsdProfile != null && Object.hasOwnProperty.call(message, "ephemeralLocalSsdProfile")) + $root.google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.encode(message.ephemeralLocalSsdProfile, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.dedicatedLocalSsdProfile != null && Object.hasOwnProperty.call(message, "dedicatedLocalSsdProfile")) + $root.google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.encode(message.dedicatedLocalSsdProfile, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified SwapConfig message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {google.container.v1.LinuxNodeConfig.ISwapConfig} message SwapConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SwapConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SwapConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig} SwapConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SwapConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.enabled = reader.bool(); + break; + } + case 2: { + message.encryptionConfig = $root.google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.decode(reader, reader.uint32()); + break; + } + case 3: { + message.bootDiskProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.decode(reader, reader.uint32()); + break; + } + case 4: { + message.ephemeralLocalSsdProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.decode(reader, reader.uint32()); + break; + } + case 5: { + message.dedicatedLocalSsdProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SwapConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig} SwapConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SwapConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SwapConfig message. + * @function verify + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SwapConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.enabled != null && message.hasOwnProperty("enabled")) { + properties._enabled = 1; + if (typeof message.enabled !== "boolean") + return "enabled: boolean expected"; + } + if (message.encryptionConfig != null && message.hasOwnProperty("encryptionConfig")) { + properties._encryptionConfig = 1; + { + var error = $root.google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify(message.encryptionConfig); + if (error) + return "encryptionConfig." + error; + } + } + if (message.bootDiskProfile != null && message.hasOwnProperty("bootDiskProfile")) { + properties.performanceProfile = 1; + { + var error = $root.google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify(message.bootDiskProfile); + if (error) + return "bootDiskProfile." + error; + } + } + if (message.ephemeralLocalSsdProfile != null && message.hasOwnProperty("ephemeralLocalSsdProfile")) { + if (properties.performanceProfile === 1) + return "performanceProfile: multiple values"; + properties.performanceProfile = 1; + { + var error = $root.google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify(message.ephemeralLocalSsdProfile); + if (error) + return "ephemeralLocalSsdProfile." + error; + } + } + if (message.dedicatedLocalSsdProfile != null && message.hasOwnProperty("dedicatedLocalSsdProfile")) { + if (properties.performanceProfile === 1) + return "performanceProfile: multiple values"; + properties.performanceProfile = 1; + { + var error = $root.google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify(message.dedicatedLocalSsdProfile); + if (error) + return "dedicatedLocalSsdProfile." + error; + } + } + return null; + }; + + /** + * Creates a SwapConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig} SwapConfig + */ + SwapConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.LinuxNodeConfig.SwapConfig) + return object; + var message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig(); + if (object.enabled != null) + message.enabled = Boolean(object.enabled); + if (object.encryptionConfig != null) { + if (typeof object.encryptionConfig !== "object") + throw TypeError(".google.container.v1.LinuxNodeConfig.SwapConfig.encryptionConfig: object expected"); + message.encryptionConfig = $root.google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.fromObject(object.encryptionConfig); + } + if (object.bootDiskProfile != null) { + if (typeof object.bootDiskProfile !== "object") + throw TypeError(".google.container.v1.LinuxNodeConfig.SwapConfig.bootDiskProfile: object expected"); + message.bootDiskProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.fromObject(object.bootDiskProfile); + } + if (object.ephemeralLocalSsdProfile != null) { + if (typeof object.ephemeralLocalSsdProfile !== "object") + throw TypeError(".google.container.v1.LinuxNodeConfig.SwapConfig.ephemeralLocalSsdProfile: object expected"); + message.ephemeralLocalSsdProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.fromObject(object.ephemeralLocalSsdProfile); + } + if (object.dedicatedLocalSsdProfile != null) { + if (typeof object.dedicatedLocalSsdProfile !== "object") + throw TypeError(".google.container.v1.LinuxNodeConfig.SwapConfig.dedicatedLocalSsdProfile: object expected"); + message.dedicatedLocalSsdProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.fromObject(object.dedicatedLocalSsdProfile); + } + return message; + }; + + /** + * Creates a plain object from a SwapConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig} message SwapConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SwapConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.enabled != null && message.hasOwnProperty("enabled")) { + object.enabled = message.enabled; + if (options.oneofs) + object._enabled = "enabled"; + } + if (message.encryptionConfig != null && message.hasOwnProperty("encryptionConfig")) { + object.encryptionConfig = $root.google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.toObject(message.encryptionConfig, options); + if (options.oneofs) + object._encryptionConfig = "encryptionConfig"; + } + if (message.bootDiskProfile != null && message.hasOwnProperty("bootDiskProfile")) { + object.bootDiskProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.toObject(message.bootDiskProfile, options); + if (options.oneofs) + object.performanceProfile = "bootDiskProfile"; + } + if (message.ephemeralLocalSsdProfile != null && message.hasOwnProperty("ephemeralLocalSsdProfile")) { + object.ephemeralLocalSsdProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.toObject(message.ephemeralLocalSsdProfile, options); + if (options.oneofs) + object.performanceProfile = "ephemeralLocalSsdProfile"; + } + if (message.dedicatedLocalSsdProfile != null && message.hasOwnProperty("dedicatedLocalSsdProfile")) { + object.dedicatedLocalSsdProfile = $root.google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.toObject(message.dedicatedLocalSsdProfile, options); + if (options.oneofs) + object.performanceProfile = "dedicatedLocalSsdProfile"; + } + return object; + }; + + /** + * Converts this SwapConfig to JSON. + * @function toJSON + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @instance + * @returns {Object.} JSON object + */ + SwapConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SwapConfig + * @function getTypeUrl + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SwapConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.LinuxNodeConfig.SwapConfig"; + }; + + SwapConfig.EncryptionConfig = (function() { + + /** + * Properties of an EncryptionConfig. + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @interface IEncryptionConfig + * @property {boolean|null} [disabled] EncryptionConfig disabled + */ + + /** + * Constructs a new EncryptionConfig. + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @classdesc Represents an EncryptionConfig. + * @implements IEncryptionConfig + * @constructor + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig=} [properties] Properties to set + */ + function EncryptionConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * EncryptionConfig disabled. + * @member {boolean|null|undefined} disabled + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @instance + */ + EncryptionConfig.prototype.disabled = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(EncryptionConfig.prototype, "_disabled", { + get: $util.oneOfGetter($oneOfFields = ["disabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new EncryptionConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig=} [properties] Properties to set + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig} EncryptionConfig instance + */ + EncryptionConfig.create = function create(properties) { + return new EncryptionConfig(properties); + }; + + /** + * Encodes the specified EncryptionConfig message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig} message EncryptionConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.disabled != null && Object.hasOwnProperty.call(message, "disabled")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.disabled); + return writer; + }; + + /** + * Encodes the specified EncryptionConfig message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IEncryptionConfig} message EncryptionConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EncryptionConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EncryptionConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig} EncryptionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.disabled = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EncryptionConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig} EncryptionConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EncryptionConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EncryptionConfig message. + * @function verify + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EncryptionConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.disabled != null && message.hasOwnProperty("disabled")) { + properties._disabled = 1; + if (typeof message.disabled !== "boolean") + return "disabled: boolean expected"; + } + return null; + }; + + /** + * Creates an EncryptionConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig} EncryptionConfig + */ + EncryptionConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig) + return object; + var message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig(); + if (object.disabled != null) + message.disabled = Boolean(object.disabled); + return message; + }; + + /** + * Creates a plain object from an EncryptionConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig} message EncryptionConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EncryptionConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.disabled != null && message.hasOwnProperty("disabled")) { + object.disabled = message.disabled; + if (options.oneofs) + object._disabled = "disabled"; + } + return object; + }; + + /** + * Converts this EncryptionConfig to JSON. + * @function toJSON + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @instance + * @returns {Object.} JSON object + */ + EncryptionConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for EncryptionConfig + * @function getTypeUrl + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EncryptionConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.LinuxNodeConfig.SwapConfig.EncryptionConfig"; + }; + + return EncryptionConfig; + })(); + + SwapConfig.BootDiskProfile = (function() { + + /** + * Properties of a BootDiskProfile. + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @interface IBootDiskProfile + * @property {number|Long|null} [swapSizeGib] BootDiskProfile swapSizeGib + * @property {number|null} [swapSizePercent] BootDiskProfile swapSizePercent + */ + + /** + * Constructs a new BootDiskProfile. + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @classdesc Represents a BootDiskProfile. + * @implements IBootDiskProfile + * @constructor + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile=} [properties] Properties to set + */ + function BootDiskProfile(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BootDiskProfile swapSizeGib. + * @member {number|Long|null|undefined} swapSizeGib + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @instance + */ + BootDiskProfile.prototype.swapSizeGib = null; + + /** + * BootDiskProfile swapSizePercent. + * @member {number|null|undefined} swapSizePercent + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @instance + */ + BootDiskProfile.prototype.swapSizePercent = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * BootDiskProfile swapSize. + * @member {"swapSizeGib"|"swapSizePercent"|undefined} swapSize + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @instance + */ + Object.defineProperty(BootDiskProfile.prototype, "swapSize", { + get: $util.oneOfGetter($oneOfFields = ["swapSizeGib", "swapSizePercent"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BootDiskProfile instance using the specified properties. + * @function create + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile=} [properties] Properties to set + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile} BootDiskProfile instance + */ + BootDiskProfile.create = function create(properties) { + return new BootDiskProfile(properties); + }; + + /** + * Encodes the specified BootDiskProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify|verify} messages. + * @function encode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile} message BootDiskProfile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BootDiskProfile.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.swapSizeGib != null && Object.hasOwnProperty.call(message, "swapSizeGib")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.swapSizeGib); + if (message.swapSizePercent != null && Object.hasOwnProperty.call(message, "swapSizePercent")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.swapSizePercent); + return writer; + }; + + /** + * Encodes the specified BootDiskProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IBootDiskProfile} message BootDiskProfile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BootDiskProfile.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BootDiskProfile message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile} BootDiskProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BootDiskProfile.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.swapSizeGib = reader.int64(); + break; + } + case 2: { + message.swapSizePercent = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BootDiskProfile message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile} BootDiskProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BootDiskProfile.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BootDiskProfile message. + * @function verify + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BootDiskProfile.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.swapSizeGib != null && message.hasOwnProperty("swapSizeGib")) { + properties.swapSize = 1; + if (!$util.isInteger(message.swapSizeGib) && !(message.swapSizeGib && $util.isInteger(message.swapSizeGib.low) && $util.isInteger(message.swapSizeGib.high))) + return "swapSizeGib: integer|Long expected"; + } + if (message.swapSizePercent != null && message.hasOwnProperty("swapSizePercent")) { + if (properties.swapSize === 1) + return "swapSize: multiple values"; + properties.swapSize = 1; + if (!$util.isInteger(message.swapSizePercent)) + return "swapSizePercent: integer expected"; + } + return null; + }; + + /** + * Creates a BootDiskProfile message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile} BootDiskProfile + */ + BootDiskProfile.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile) + return object; + var message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile(); + if (object.swapSizeGib != null) + if ($util.Long) + (message.swapSizeGib = $util.Long.fromValue(object.swapSizeGib)).unsigned = false; + else if (typeof object.swapSizeGib === "string") + message.swapSizeGib = parseInt(object.swapSizeGib, 10); + else if (typeof object.swapSizeGib === "number") + message.swapSizeGib = object.swapSizeGib; + else if (typeof object.swapSizeGib === "object") + message.swapSizeGib = new $util.LongBits(object.swapSizeGib.low >>> 0, object.swapSizeGib.high >>> 0).toNumber(); + if (object.swapSizePercent != null) + message.swapSizePercent = object.swapSizePercent | 0; + return message; + }; + + /** + * Creates a plain object from a BootDiskProfile message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile} message BootDiskProfile + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BootDiskProfile.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.swapSizeGib != null && message.hasOwnProperty("swapSizeGib")) { + if (typeof message.swapSizeGib === "number") + object.swapSizeGib = options.longs === String ? String(message.swapSizeGib) : message.swapSizeGib; + else + object.swapSizeGib = options.longs === String ? $util.Long.prototype.toString.call(message.swapSizeGib) : options.longs === Number ? new $util.LongBits(message.swapSizeGib.low >>> 0, message.swapSizeGib.high >>> 0).toNumber() : message.swapSizeGib; + if (options.oneofs) + object.swapSize = "swapSizeGib"; + } + if (message.swapSizePercent != null && message.hasOwnProperty("swapSizePercent")) { + object.swapSizePercent = message.swapSizePercent; + if (options.oneofs) + object.swapSize = "swapSizePercent"; + } + return object; + }; + + /** + * Converts this BootDiskProfile to JSON. + * @function toJSON + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @instance + * @returns {Object.} JSON object + */ + BootDiskProfile.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BootDiskProfile + * @function getTypeUrl + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BootDiskProfile.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.LinuxNodeConfig.SwapConfig.BootDiskProfile"; + }; + + return BootDiskProfile; + })(); + + SwapConfig.EphemeralLocalSsdProfile = (function() { + + /** + * Properties of an EphemeralLocalSsdProfile. + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @interface IEphemeralLocalSsdProfile + * @property {number|Long|null} [swapSizeGib] EphemeralLocalSsdProfile swapSizeGib + * @property {number|null} [swapSizePercent] EphemeralLocalSsdProfile swapSizePercent + */ + + /** + * Constructs a new EphemeralLocalSsdProfile. + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @classdesc Represents an EphemeralLocalSsdProfile. + * @implements IEphemeralLocalSsdProfile + * @constructor + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile=} [properties] Properties to set + */ + function EphemeralLocalSsdProfile(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * EphemeralLocalSsdProfile swapSizeGib. + * @member {number|Long|null|undefined} swapSizeGib + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @instance + */ + EphemeralLocalSsdProfile.prototype.swapSizeGib = null; + + /** + * EphemeralLocalSsdProfile swapSizePercent. + * @member {number|null|undefined} swapSizePercent + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @instance + */ + EphemeralLocalSsdProfile.prototype.swapSizePercent = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * EphemeralLocalSsdProfile swapSize. + * @member {"swapSizeGib"|"swapSizePercent"|undefined} swapSize + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @instance + */ + Object.defineProperty(EphemeralLocalSsdProfile.prototype, "swapSize", { + get: $util.oneOfGetter($oneOfFields = ["swapSizeGib", "swapSizePercent"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new EphemeralLocalSsdProfile instance using the specified properties. + * @function create + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile=} [properties] Properties to set + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile} EphemeralLocalSsdProfile instance + */ + EphemeralLocalSsdProfile.create = function create(properties) { + return new EphemeralLocalSsdProfile(properties); + }; + + /** + * Encodes the specified EphemeralLocalSsdProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify|verify} messages. + * @function encode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile} message EphemeralLocalSsdProfile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EphemeralLocalSsdProfile.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.swapSizeGib != null && Object.hasOwnProperty.call(message, "swapSizeGib")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.swapSizeGib); + if (message.swapSizePercent != null && Object.hasOwnProperty.call(message, "swapSizePercent")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.swapSizePercent); + return writer; + }; + + /** + * Encodes the specified EphemeralLocalSsdProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IEphemeralLocalSsdProfile} message EphemeralLocalSsdProfile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + EphemeralLocalSsdProfile.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an EphemeralLocalSsdProfile message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile} EphemeralLocalSsdProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EphemeralLocalSsdProfile.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.swapSizeGib = reader.int64(); + break; + } + case 2: { + message.swapSizePercent = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an EphemeralLocalSsdProfile message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile} EphemeralLocalSsdProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + EphemeralLocalSsdProfile.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an EphemeralLocalSsdProfile message. + * @function verify + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + EphemeralLocalSsdProfile.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.swapSizeGib != null && message.hasOwnProperty("swapSizeGib")) { + properties.swapSize = 1; + if (!$util.isInteger(message.swapSizeGib) && !(message.swapSizeGib && $util.isInteger(message.swapSizeGib.low) && $util.isInteger(message.swapSizeGib.high))) + return "swapSizeGib: integer|Long expected"; + } + if (message.swapSizePercent != null && message.hasOwnProperty("swapSizePercent")) { + if (properties.swapSize === 1) + return "swapSize: multiple values"; + properties.swapSize = 1; + if (!$util.isInteger(message.swapSizePercent)) + return "swapSizePercent: integer expected"; + } + return null; + }; + + /** + * Creates an EphemeralLocalSsdProfile message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile} EphemeralLocalSsdProfile + */ + EphemeralLocalSsdProfile.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile) + return object; + var message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile(); + if (object.swapSizeGib != null) + if ($util.Long) + (message.swapSizeGib = $util.Long.fromValue(object.swapSizeGib)).unsigned = false; + else if (typeof object.swapSizeGib === "string") + message.swapSizeGib = parseInt(object.swapSizeGib, 10); + else if (typeof object.swapSizeGib === "number") + message.swapSizeGib = object.swapSizeGib; + else if (typeof object.swapSizeGib === "object") + message.swapSizeGib = new $util.LongBits(object.swapSizeGib.low >>> 0, object.swapSizeGib.high >>> 0).toNumber(); + if (object.swapSizePercent != null) + message.swapSizePercent = object.swapSizePercent | 0; + return message; + }; + + /** + * Creates a plain object from an EphemeralLocalSsdProfile message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile} message EphemeralLocalSsdProfile + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EphemeralLocalSsdProfile.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.swapSizeGib != null && message.hasOwnProperty("swapSizeGib")) { + if (typeof message.swapSizeGib === "number") + object.swapSizeGib = options.longs === String ? String(message.swapSizeGib) : message.swapSizeGib; + else + object.swapSizeGib = options.longs === String ? $util.Long.prototype.toString.call(message.swapSizeGib) : options.longs === Number ? new $util.LongBits(message.swapSizeGib.low >>> 0, message.swapSizeGib.high >>> 0).toNumber() : message.swapSizeGib; + if (options.oneofs) + object.swapSize = "swapSizeGib"; + } + if (message.swapSizePercent != null && message.hasOwnProperty("swapSizePercent")) { + object.swapSizePercent = message.swapSizePercent; + if (options.oneofs) + object.swapSize = "swapSizePercent"; + } + return object; + }; + + /** + * Converts this EphemeralLocalSsdProfile to JSON. + * @function toJSON + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @instance + * @returns {Object.} JSON object + */ + EphemeralLocalSsdProfile.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for EphemeralLocalSsdProfile + * @function getTypeUrl + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EphemeralLocalSsdProfile.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.LinuxNodeConfig.SwapConfig.EphemeralLocalSsdProfile"; + }; + + return EphemeralLocalSsdProfile; + })(); + + SwapConfig.DedicatedLocalSsdProfile = (function() { + + /** + * Properties of a DedicatedLocalSsdProfile. + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @interface IDedicatedLocalSsdProfile + * @property {number|Long|null} [diskCount] DedicatedLocalSsdProfile diskCount + */ + + /** + * Constructs a new DedicatedLocalSsdProfile. + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig + * @classdesc Represents a DedicatedLocalSsdProfile. + * @implements IDedicatedLocalSsdProfile + * @constructor + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile=} [properties] Properties to set + */ + function DedicatedLocalSsdProfile(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DedicatedLocalSsdProfile diskCount. + * @member {number|Long} diskCount + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @instance + */ + DedicatedLocalSsdProfile.prototype.diskCount = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Creates a new DedicatedLocalSsdProfile instance using the specified properties. + * @function create + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile=} [properties] Properties to set + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile} DedicatedLocalSsdProfile instance + */ + DedicatedLocalSsdProfile.create = function create(properties) { + return new DedicatedLocalSsdProfile(properties); + }; + + /** + * Encodes the specified DedicatedLocalSsdProfile message. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify|verify} messages. + * @function encode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile} message DedicatedLocalSsdProfile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DedicatedLocalSsdProfile.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.diskCount != null && Object.hasOwnProperty.call(message, "diskCount")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.diskCount); + return writer; + }; + + /** + * Encodes the specified DedicatedLocalSsdProfile message, length delimited. Does not implicitly {@link google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.IDedicatedLocalSsdProfile} message DedicatedLocalSsdProfile message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DedicatedLocalSsdProfile.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DedicatedLocalSsdProfile message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile} DedicatedLocalSsdProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DedicatedLocalSsdProfile.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.diskCount = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DedicatedLocalSsdProfile message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile} DedicatedLocalSsdProfile + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DedicatedLocalSsdProfile.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DedicatedLocalSsdProfile message. + * @function verify + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DedicatedLocalSsdProfile.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.diskCount != null && message.hasOwnProperty("diskCount")) + if (!$util.isInteger(message.diskCount) && !(message.diskCount && $util.isInteger(message.diskCount.low) && $util.isInteger(message.diskCount.high))) + return "diskCount: integer|Long expected"; + return null; + }; + + /** + * Creates a DedicatedLocalSsdProfile message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile} DedicatedLocalSsdProfile + */ + DedicatedLocalSsdProfile.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile) + return object; + var message = new $root.google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile(); + if (object.diskCount != null) + if ($util.Long) + (message.diskCount = $util.Long.fromValue(object.diskCount)).unsigned = false; + else if (typeof object.diskCount === "string") + message.diskCount = parseInt(object.diskCount, 10); + else if (typeof object.diskCount === "number") + message.diskCount = object.diskCount; + else if (typeof object.diskCount === "object") + message.diskCount = new $util.LongBits(object.diskCount.low >>> 0, object.diskCount.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from a DedicatedLocalSsdProfile message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile} message DedicatedLocalSsdProfile + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DedicatedLocalSsdProfile.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.diskCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.diskCount = options.longs === String ? "0" : 0; + if (message.diskCount != null && message.hasOwnProperty("diskCount")) + if (typeof message.diskCount === "number") + object.diskCount = options.longs === String ? String(message.diskCount) : message.diskCount; + else + object.diskCount = options.longs === String ? $util.Long.prototype.toString.call(message.diskCount) : options.longs === Number ? new $util.LongBits(message.diskCount.low >>> 0, message.diskCount.high >>> 0).toNumber() : message.diskCount; + return object; + }; + + /** + * Converts this DedicatedLocalSsdProfile to JSON. + * @function toJSON + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @instance + * @returns {Object.} JSON object + */ + DedicatedLocalSsdProfile.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DedicatedLocalSsdProfile + * @function getTypeUrl + * @memberof google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DedicatedLocalSsdProfile.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.LinuxNodeConfig.SwapConfig.DedicatedLocalSsdProfile"; + }; + + return DedicatedLocalSsdProfile; + })(); + + return SwapConfig; + })(); + LinuxNodeConfig.NodeKernelModuleLoading = (function() { /** @@ -2577,6 +3948,8 @@ * @property {number|null} [evictionMaxPodGracePeriodSeconds] NodeKubeletConfig evictionMaxPodGracePeriodSeconds * @property {number|null} [maxParallelImagePulls] NodeKubeletConfig maxParallelImagePulls * @property {boolean|null} [singleProcessOomKill] NodeKubeletConfig singleProcessOomKill + * @property {number|null} [shutdownGracePeriodSeconds] NodeKubeletConfig shutdownGracePeriodSeconds + * @property {number|null} [shutdownGracePeriodCriticalPodsSeconds] NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds */ /** @@ -2755,6 +4128,22 @@ */ NodeKubeletConfig.prototype.singleProcessOomKill = null; + /** + * NodeKubeletConfig shutdownGracePeriodSeconds. + * @member {number|null|undefined} shutdownGracePeriodSeconds + * @memberof google.container.v1.NodeKubeletConfig + * @instance + */ + NodeKubeletConfig.prototype.shutdownGracePeriodSeconds = null; + + /** + * NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds. + * @member {number|null|undefined} shutdownGracePeriodCriticalPodsSeconds + * @memberof google.container.v1.NodeKubeletConfig + * @instance + */ + NodeKubeletConfig.prototype.shutdownGracePeriodCriticalPodsSeconds = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -2770,6 +4159,18 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(NodeKubeletConfig.prototype, "_shutdownGracePeriodSeconds", { + get: $util.oneOfGetter($oneOfFields = ["shutdownGracePeriodSeconds"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(NodeKubeletConfig.prototype, "_shutdownGracePeriodCriticalPodsSeconds", { + get: $util.oneOfGetter($oneOfFields = ["shutdownGracePeriodCriticalPodsSeconds"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new NodeKubeletConfig instance using the specified properties. * @function create @@ -2835,6 +4236,10 @@ writer.uint32(/* id 21, wireType 0 =*/168).int32(message.maxParallelImagePulls); if (message.singleProcessOomKill != null && Object.hasOwnProperty.call(message, "singleProcessOomKill")) writer.uint32(/* id 22, wireType 0 =*/176).bool(message.singleProcessOomKill); + if (message.shutdownGracePeriodSeconds != null && Object.hasOwnProperty.call(message, "shutdownGracePeriodSeconds")) + writer.uint32(/* id 26, wireType 0 =*/208).int32(message.shutdownGracePeriodSeconds); + if (message.shutdownGracePeriodCriticalPodsSeconds != null && Object.hasOwnProperty.call(message, "shutdownGracePeriodCriticalPodsSeconds")) + writer.uint32(/* id 27, wireType 0 =*/216).int32(message.shutdownGracePeriodCriticalPodsSeconds); return writer; }; @@ -2953,6 +4358,14 @@ message.singleProcessOomKill = reader.bool(); break; } + case 26: { + message.shutdownGracePeriodSeconds = reader.int32(); + break; + } + case 27: { + message.shutdownGracePeriodCriticalPodsSeconds = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -3069,6 +4482,16 @@ if (typeof message.singleProcessOomKill !== "boolean") return "singleProcessOomKill: boolean expected"; } + if (message.shutdownGracePeriodSeconds != null && message.hasOwnProperty("shutdownGracePeriodSeconds")) { + properties._shutdownGracePeriodSeconds = 1; + if (!$util.isInteger(message.shutdownGracePeriodSeconds)) + return "shutdownGracePeriodSeconds: integer expected"; + } + if (message.shutdownGracePeriodCriticalPodsSeconds != null && message.hasOwnProperty("shutdownGracePeriodCriticalPodsSeconds")) { + properties._shutdownGracePeriodCriticalPodsSeconds = 1; + if (!$util.isInteger(message.shutdownGracePeriodCriticalPodsSeconds)) + return "shutdownGracePeriodCriticalPodsSeconds: integer expected"; + } return null; }; @@ -3154,6 +4577,10 @@ message.maxParallelImagePulls = object.maxParallelImagePulls | 0; if (object.singleProcessOomKill != null) message.singleProcessOomKill = Boolean(object.singleProcessOomKill); + if (object.shutdownGracePeriodSeconds != null) + message.shutdownGracePeriodSeconds = object.shutdownGracePeriodSeconds | 0; + if (object.shutdownGracePeriodCriticalPodsSeconds != null) + message.shutdownGracePeriodCriticalPodsSeconds = object.shutdownGracePeriodCriticalPodsSeconds | 0; return message; }; @@ -3247,6 +4674,16 @@ if (options.oneofs) object._singleProcessOomKill = "singleProcessOomKill"; } + if (message.shutdownGracePeriodSeconds != null && message.hasOwnProperty("shutdownGracePeriodSeconds")) { + object.shutdownGracePeriodSeconds = message.shutdownGracePeriodSeconds; + if (options.oneofs) + object._shutdownGracePeriodSeconds = "shutdownGracePeriodSeconds"; + } + if (message.shutdownGracePeriodCriticalPodsSeconds != null && message.hasOwnProperty("shutdownGracePeriodCriticalPodsSeconds")) { + object.shutdownGracePeriodCriticalPodsSeconds = message.shutdownGracePeriodCriticalPodsSeconds; + if (options.oneofs) + object._shutdownGracePeriodCriticalPodsSeconds = "shutdownGracePeriodCriticalPodsSeconds"; + } return object; }; @@ -4722,11 +6159,13 @@ * @property {Array.|null} [secondaryBootDisks] NodeConfig secondaryBootDisks * @property {Array.|null} [storagePools] NodeConfig storagePools * @property {google.container.v1.ISecondaryBootDiskUpdateStrategy|null} [secondaryBootDiskUpdateStrategy] NodeConfig secondaryBootDiskUpdateStrategy + * @property {google.container.v1.IGPUDirectConfig|null} [gpuDirectConfig] NodeConfig gpuDirectConfig * @property {google.protobuf.IDuration|null} [maxRunDuration] NodeConfig maxRunDuration * @property {google.container.v1.NodeConfig.LocalSsdEncryptionMode|null} [localSsdEncryptionMode] NodeConfig localSsdEncryptionMode * @property {google.container.v1.NodeConfig.EffectiveCgroupMode|null} [effectiveCgroupMode] NodeConfig effectiveCgroupMode * @property {boolean|null} [flexStart] NodeConfig flexStart * @property {google.container.v1.IBootDisk|null} [bootDisk] NodeConfig bootDisk + * @property {google.protobuf.IDuration|null} [consolidationDelay] NodeConfig consolidationDelay */ /** @@ -5073,6 +6512,14 @@ */ NodeConfig.prototype.secondaryBootDiskUpdateStrategy = null; + /** + * NodeConfig gpuDirectConfig. + * @member {google.container.v1.IGPUDirectConfig|null|undefined} gpuDirectConfig + * @memberof google.container.v1.NodeConfig + * @instance + */ + NodeConfig.prototype.gpuDirectConfig = null; + /** * NodeConfig maxRunDuration. * @member {google.protobuf.IDuration|null|undefined} maxRunDuration @@ -5113,6 +6560,14 @@ */ NodeConfig.prototype.bootDisk = null; + /** + * NodeConfig consolidationDelay. + * @member {google.protobuf.IDuration|null|undefined} consolidationDelay + * @memberof google.container.v1.NodeConfig + * @instance + */ + NodeConfig.prototype.consolidationDelay = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -5128,6 +6583,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(NodeConfig.prototype, "_gpuDirectConfig", { + get: $util.oneOfGetter($oneOfFields = ["gpuDirectConfig"]), + set: $util.oneOfSetter($oneOfFields) + }); + // Virtual OneOf for proto3 optional field Object.defineProperty(NodeConfig.prototype, "_localSsdEncryptionMode", { get: $util.oneOfGetter($oneOfFields = ["localSsdEncryptionMode"]), @@ -5253,6 +6714,8 @@ writer.uint32(/* id 49, wireType 2 =*/394).string(message.storagePools[i]); if (message.secondaryBootDiskUpdateStrategy != null && Object.hasOwnProperty.call(message, "secondaryBootDiskUpdateStrategy")) $root.google.container.v1.SecondaryBootDiskUpdateStrategy.encode(message.secondaryBootDiskUpdateStrategy, writer.uint32(/* id 50, wireType 2 =*/402).fork()).ldelim(); + if (message.gpuDirectConfig != null && Object.hasOwnProperty.call(message, "gpuDirectConfig")) + $root.google.container.v1.GPUDirectConfig.encode(message.gpuDirectConfig, writer.uint32(/* id 51, wireType 2 =*/410).fork()).ldelim(); if (message.maxRunDuration != null && Object.hasOwnProperty.call(message, "maxRunDuration")) $root.google.protobuf.Duration.encode(message.maxRunDuration, writer.uint32(/* id 53, wireType 2 =*/426).fork()).ldelim(); if (message.localSsdEncryptionMode != null && Object.hasOwnProperty.call(message, "localSsdEncryptionMode")) @@ -5263,6 +6726,8 @@ writer.uint32(/* id 56, wireType 0 =*/448).bool(message.flexStart); if (message.bootDisk != null && Object.hasOwnProperty.call(message, "bootDisk")) $root.google.container.v1.BootDisk.encode(message.bootDisk, writer.uint32(/* id 57, wireType 2 =*/458).fork()).ldelim(); + if (message.consolidationDelay != null && Object.hasOwnProperty.call(message, "consolidationDelay")) + $root.google.protobuf.Duration.encode(message.consolidationDelay, writer.uint32(/* id 60, wireType 2 =*/482).fork()).ldelim(); return writer; }; @@ -5528,6 +6993,10 @@ message.secondaryBootDiskUpdateStrategy = $root.google.container.v1.SecondaryBootDiskUpdateStrategy.decode(reader, reader.uint32()); break; } + case 51: { + message.gpuDirectConfig = $root.google.container.v1.GPUDirectConfig.decode(reader, reader.uint32()); + break; + } case 53: { message.maxRunDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); break; @@ -5548,6 +7017,10 @@ message.bootDisk = $root.google.container.v1.BootDisk.decode(reader, reader.uint32()); break; } + case 60: { + message.consolidationDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -5793,6 +7266,14 @@ return "secondaryBootDiskUpdateStrategy." + error; } } + if (message.gpuDirectConfig != null && message.hasOwnProperty("gpuDirectConfig")) { + properties._gpuDirectConfig = 1; + { + var error = $root.google.container.v1.GPUDirectConfig.verify(message.gpuDirectConfig); + if (error) + return "gpuDirectConfig." + error; + } + } if (message.maxRunDuration != null && message.hasOwnProperty("maxRunDuration")) { var error = $root.google.protobuf.Duration.verify(message.maxRunDuration); if (error) @@ -5828,6 +7309,11 @@ if (error) return "bootDisk." + error; } + if (message.consolidationDelay != null && message.hasOwnProperty("consolidationDelay")) { + var error = $root.google.protobuf.Duration.verify(message.consolidationDelay); + if (error) + return "consolidationDelay." + error; + } return null; }; @@ -6034,6 +7520,11 @@ throw TypeError(".google.container.v1.NodeConfig.secondaryBootDiskUpdateStrategy: object expected"); message.secondaryBootDiskUpdateStrategy = $root.google.container.v1.SecondaryBootDiskUpdateStrategy.fromObject(object.secondaryBootDiskUpdateStrategy); } + if (object.gpuDirectConfig != null) { + if (typeof object.gpuDirectConfig !== "object") + throw TypeError(".google.container.v1.NodeConfig.gpuDirectConfig: object expected"); + message.gpuDirectConfig = $root.google.container.v1.GPUDirectConfig.fromObject(object.gpuDirectConfig); + } if (object.maxRunDuration != null) { if (typeof object.maxRunDuration !== "object") throw TypeError(".google.container.v1.NodeConfig.maxRunDuration: object expected"); @@ -6086,6 +7577,11 @@ throw TypeError(".google.container.v1.NodeConfig.bootDisk: object expected"); message.bootDisk = $root.google.container.v1.BootDisk.fromObject(object.bootDisk); } + if (object.consolidationDelay != null) { + if (typeof object.consolidationDelay !== "object") + throw TypeError(".google.container.v1.NodeConfig.consolidationDelay: object expected"); + message.consolidationDelay = $root.google.protobuf.Duration.fromObject(object.consolidationDelay); + } return message; }; @@ -6148,6 +7644,7 @@ object.maxRunDuration = null; object.effectiveCgroupMode = options.enums === String ? "EFFECTIVE_CGROUP_MODE_UNSPECIFIED" : 0; object.bootDisk = null; + object.consolidationDelay = null; } if (message.machineType != null && message.hasOwnProperty("machineType")) object.machineType = message.machineType; @@ -6263,6 +7760,11 @@ if (options.oneofs) object._secondaryBootDiskUpdateStrategy = "secondaryBootDiskUpdateStrategy"; } + if (message.gpuDirectConfig != null && message.hasOwnProperty("gpuDirectConfig")) { + object.gpuDirectConfig = $root.google.container.v1.GPUDirectConfig.toObject(message.gpuDirectConfig, options); + if (options.oneofs) + object._gpuDirectConfig = "gpuDirectConfig"; + } if (message.maxRunDuration != null && message.hasOwnProperty("maxRunDuration")) object.maxRunDuration = $root.google.protobuf.Duration.toObject(message.maxRunDuration, options); if (message.localSsdEncryptionMode != null && message.hasOwnProperty("localSsdEncryptionMode")) { @@ -6279,6 +7781,8 @@ } if (message.bootDisk != null && message.hasOwnProperty("bootDisk")) object.bootDisk = $root.google.container.v1.BootDisk.toObject(message.bootDisk, options); + if (message.consolidationDelay != null && message.hasOwnProperty("consolidationDelay")) + object.consolidationDelay = $root.google.protobuf.Duration.toObject(message.consolidationDelay, options); return object; }; @@ -9524,6 +11028,7 @@ * @interface IContainerdConfig * @property {google.container.v1.ContainerdConfig.IPrivateRegistryAccessConfig|null} [privateRegistryAccessConfig] ContainerdConfig privateRegistryAccessConfig * @property {google.container.v1.ContainerdConfig.IWritableCgroups|null} [writableCgroups] ContainerdConfig writableCgroups + * @property {Array.|null} [registryHosts] ContainerdConfig registryHosts */ /** @@ -9535,6 +11040,7 @@ * @param {google.container.v1.IContainerdConfig=} [properties] Properties to set */ function ContainerdConfig(properties) { + this.registryHosts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -9557,6 +11063,14 @@ */ ContainerdConfig.prototype.writableCgroups = null; + /** + * ContainerdConfig registryHosts. + * @member {Array.} registryHosts + * @memberof google.container.v1.ContainerdConfig + * @instance + */ + ContainerdConfig.prototype.registryHosts = $util.emptyArray; + /** * Creates a new ContainerdConfig instance using the specified properties. * @function create @@ -9585,6 +11099,9 @@ $root.google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.encode(message.privateRegistryAccessConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.writableCgroups != null && Object.hasOwnProperty.call(message, "writableCgroups")) $root.google.container.v1.ContainerdConfig.WritableCgroups.encode(message.writableCgroups, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.registryHosts != null && message.registryHosts.length) + for (var i = 0; i < message.registryHosts.length; ++i) + $root.google.container.v1.ContainerdConfig.RegistryHostConfig.encode(message.registryHosts[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -9629,6 +11146,12 @@ message.writableCgroups = $root.google.container.v1.ContainerdConfig.WritableCgroups.decode(reader, reader.uint32()); break; } + case 3: { + if (!(message.registryHosts && message.registryHosts.length)) + message.registryHosts = []; + message.registryHosts.push($root.google.container.v1.ContainerdConfig.RegistryHostConfig.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -9674,6 +11197,15 @@ if (error) return "writableCgroups." + error; } + if (message.registryHosts != null && message.hasOwnProperty("registryHosts")) { + if (!Array.isArray(message.registryHosts)) + return "registryHosts: array expected"; + for (var i = 0; i < message.registryHosts.length; ++i) { + var error = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.verify(message.registryHosts[i]); + if (error) + return "registryHosts." + error; + } + } return null; }; @@ -9699,6 +11231,16 @@ throw TypeError(".google.container.v1.ContainerdConfig.writableCgroups: object expected"); message.writableCgroups = $root.google.container.v1.ContainerdConfig.WritableCgroups.fromObject(object.writableCgroups); } + if (object.registryHosts) { + if (!Array.isArray(object.registryHosts)) + throw TypeError(".google.container.v1.ContainerdConfig.registryHosts: array expected"); + message.registryHosts = []; + for (var i = 0; i < object.registryHosts.length; ++i) { + if (typeof object.registryHosts[i] !== "object") + throw TypeError(".google.container.v1.ContainerdConfig.registryHosts: object expected"); + message.registryHosts[i] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.fromObject(object.registryHosts[i]); + } + } return message; }; @@ -9715,6 +11257,8 @@ if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.registryHosts = []; if (options.defaults) { object.privateRegistryAccessConfig = null; object.writableCgroups = null; @@ -9723,6 +11267,11 @@ object.privateRegistryAccessConfig = $root.google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.toObject(message.privateRegistryAccessConfig, options); if (message.writableCgroups != null && message.hasOwnProperty("writableCgroups")) object.writableCgroups = $root.google.container.v1.ContainerdConfig.WritableCgroups.toObject(message.writableCgroups, options); + if (message.registryHosts && message.registryHosts.length) { + object.registryHosts = []; + for (var j = 0; j < message.registryHosts.length; ++j) + object.registryHosts[j] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.toObject(message.registryHosts[j], options); + } return object; }; @@ -10681,6 +12230,1448 @@ return WritableCgroups; })(); + ContainerdConfig.RegistryHostConfig = (function() { + + /** + * Properties of a RegistryHostConfig. + * @memberof google.container.v1.ContainerdConfig + * @interface IRegistryHostConfig + * @property {string|null} [server] RegistryHostConfig server + * @property {Array.|null} [hosts] RegistryHostConfig hosts + */ + + /** + * Constructs a new RegistryHostConfig. + * @memberof google.container.v1.ContainerdConfig + * @classdesc Represents a RegistryHostConfig. + * @implements IRegistryHostConfig + * @constructor + * @param {google.container.v1.ContainerdConfig.IRegistryHostConfig=} [properties] Properties to set + */ + function RegistryHostConfig(properties) { + this.hosts = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RegistryHostConfig server. + * @member {string} server + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @instance + */ + RegistryHostConfig.prototype.server = ""; + + /** + * RegistryHostConfig hosts. + * @member {Array.} hosts + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @instance + */ + RegistryHostConfig.prototype.hosts = $util.emptyArray; + + /** + * Creates a new RegistryHostConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {google.container.v1.ContainerdConfig.IRegistryHostConfig=} [properties] Properties to set + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig} RegistryHostConfig instance + */ + RegistryHostConfig.create = function create(properties) { + return new RegistryHostConfig(properties); + }; + + /** + * Encodes the specified RegistryHostConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {google.container.v1.ContainerdConfig.IRegistryHostConfig} message RegistryHostConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RegistryHostConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.server != null && Object.hasOwnProperty.call(message, "server")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.server); + if (message.hosts != null && message.hosts.length) + for (var i = 0; i < message.hosts.length; ++i) + $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.encode(message.hosts[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified RegistryHostConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {google.container.v1.ContainerdConfig.IRegistryHostConfig} message RegistryHostConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RegistryHostConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RegistryHostConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig} RegistryHostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RegistryHostConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.server = reader.string(); + break; + } + case 2: { + if (!(message.hosts && message.hosts.length)) + message.hosts = []; + message.hosts.push($root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RegistryHostConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig} RegistryHostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RegistryHostConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RegistryHostConfig message. + * @function verify + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RegistryHostConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.server != null && message.hasOwnProperty("server")) + if (!$util.isString(message.server)) + return "server: string expected"; + if (message.hosts != null && message.hasOwnProperty("hosts")) { + if (!Array.isArray(message.hosts)) + return "hosts: array expected"; + for (var i = 0; i < message.hosts.length; ++i) { + var error = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.verify(message.hosts[i]); + if (error) + return "hosts." + error; + } + } + return null; + }; + + /** + * Creates a RegistryHostConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig} RegistryHostConfig + */ + RegistryHostConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.ContainerdConfig.RegistryHostConfig) + return object; + var message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig(); + if (object.server != null) + message.server = String(object.server); + if (object.hosts) { + if (!Array.isArray(object.hosts)) + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.hosts: array expected"); + message.hosts = []; + for (var i = 0; i < object.hosts.length; ++i) { + if (typeof object.hosts[i] !== "object") + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.hosts: object expected"); + message.hosts[i] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.fromObject(object.hosts[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a RegistryHostConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig} message RegistryHostConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RegistryHostConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.hosts = []; + if (options.defaults) + object.server = ""; + if (message.server != null && message.hasOwnProperty("server")) + object.server = message.server; + if (message.hosts && message.hosts.length) { + object.hosts = []; + for (var j = 0; j < message.hosts.length; ++j) + object.hosts[j] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.toObject(message.hosts[j], options); + } + return object; + }; + + /** + * Converts this RegistryHostConfig to JSON. + * @function toJSON + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @instance + * @returns {Object.} JSON object + */ + RegistryHostConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RegistryHostConfig + * @function getTypeUrl + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RegistryHostConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.ContainerdConfig.RegistryHostConfig"; + }; + + RegistryHostConfig.CertificateConfig = (function() { + + /** + * Properties of a CertificateConfig. + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @interface ICertificateConfig + * @property {string|null} [gcpSecretManagerSecretUri] CertificateConfig gcpSecretManagerSecretUri + */ + + /** + * Constructs a new CertificateConfig. + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @classdesc Represents a CertificateConfig. + * @implements ICertificateConfig + * @constructor + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig=} [properties] Properties to set + */ + function CertificateConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CertificateConfig gcpSecretManagerSecretUri. + * @member {string|null|undefined} gcpSecretManagerSecretUri + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @instance + */ + CertificateConfig.prototype.gcpSecretManagerSecretUri = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * CertificateConfig certificate. + * @member {"gcpSecretManagerSecretUri"|undefined} certificate + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @instance + */ + Object.defineProperty(CertificateConfig.prototype, "certificate", { + get: $util.oneOfGetter($oneOfFields = ["gcpSecretManagerSecretUri"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new CertificateConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig=} [properties] Properties to set + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig} CertificateConfig instance + */ + CertificateConfig.create = function create(properties) { + return new CertificateConfig(properties); + }; + + /** + * Encodes the specified CertificateConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig} message CertificateConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.gcpSecretManagerSecretUri != null && Object.hasOwnProperty.call(message, "gcpSecretManagerSecretUri")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.gcpSecretManagerSecretUri); + return writer; + }; + + /** + * Encodes the specified CertificateConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig} message CertificateConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CertificateConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig} CertificateConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.gcpSecretManagerSecretUri = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CertificateConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig} CertificateConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CertificateConfig message. + * @function verify + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CertificateConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.gcpSecretManagerSecretUri != null && message.hasOwnProperty("gcpSecretManagerSecretUri")) { + properties.certificate = 1; + if (!$util.isString(message.gcpSecretManagerSecretUri)) + return "gcpSecretManagerSecretUri: string expected"; + } + return null; + }; + + /** + * Creates a CertificateConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig} CertificateConfig + */ + CertificateConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig) + return object; + var message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig(); + if (object.gcpSecretManagerSecretUri != null) + message.gcpSecretManagerSecretUri = String(object.gcpSecretManagerSecretUri); + return message; + }; + + /** + * Creates a plain object from a CertificateConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig} message CertificateConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CertificateConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.gcpSecretManagerSecretUri != null && message.hasOwnProperty("gcpSecretManagerSecretUri")) { + object.gcpSecretManagerSecretUri = message.gcpSecretManagerSecretUri; + if (options.oneofs) + object.certificate = "gcpSecretManagerSecretUri"; + } + return object; + }; + + /** + * Converts this CertificateConfig to JSON. + * @function toJSON + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @instance + * @returns {Object.} JSON object + */ + CertificateConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CertificateConfig + * @function getTypeUrl + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CertificateConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig"; + }; + + return CertificateConfig; + })(); + + RegistryHostConfig.CertificateConfigPair = (function() { + + /** + * Properties of a CertificateConfigPair. + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @interface ICertificateConfigPair + * @property {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null} [cert] CertificateConfigPair cert + * @property {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null} [key] CertificateConfigPair key + */ + + /** + * Constructs a new CertificateConfigPair. + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @classdesc Represents a CertificateConfigPair. + * @implements ICertificateConfigPair + * @constructor + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair=} [properties] Properties to set + */ + function CertificateConfigPair(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CertificateConfigPair cert. + * @member {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null|undefined} cert + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @instance + */ + CertificateConfigPair.prototype.cert = null; + + /** + * CertificateConfigPair key. + * @member {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null|undefined} key + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @instance + */ + CertificateConfigPair.prototype.key = null; + + /** + * Creates a new CertificateConfigPair instance using the specified properties. + * @function create + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair=} [properties] Properties to set + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} CertificateConfigPair instance + */ + CertificateConfigPair.create = function create(properties) { + return new CertificateConfigPair(properties); + }; + + /** + * Encodes the specified CertificateConfigPair message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages. + * @function encode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair} message CertificateConfigPair message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateConfigPair.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cert != null && Object.hasOwnProperty.call(message, "cert")) + $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.encode(message.cert, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.encode(message.key, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CertificateConfigPair message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair} message CertificateConfigPair message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateConfigPair.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CertificateConfigPair message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} CertificateConfigPair + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateConfigPair.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.cert = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.decode(reader, reader.uint32()); + break; + } + case 2: { + message.key = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CertificateConfigPair message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} CertificateConfigPair + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateConfigPair.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CertificateConfigPair message. + * @function verify + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CertificateConfigPair.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cert != null && message.hasOwnProperty("cert")) { + var error = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify(message.cert); + if (error) + return "cert." + error; + } + if (message.key != null && message.hasOwnProperty("key")) { + var error = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify(message.key); + if (error) + return "key." + error; + } + return null; + }; + + /** + * Creates a CertificateConfigPair message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} CertificateConfigPair + */ + CertificateConfigPair.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair) + return object; + var message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair(); + if (object.cert != null) { + if (typeof object.cert !== "object") + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.cert: object expected"); + message.cert = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.fromObject(object.cert); + } + if (object.key != null) { + if (typeof object.key !== "object") + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.key: object expected"); + message.key = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.fromObject(object.key); + } + return message; + }; + + /** + * Creates a plain object from a CertificateConfigPair message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} message CertificateConfigPair + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CertificateConfigPair.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.cert = null; + object.key = null; + } + if (message.cert != null && message.hasOwnProperty("cert")) + object.cert = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.toObject(message.cert, options); + if (message.key != null && message.hasOwnProperty("key")) + object.key = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.toObject(message.key, options); + return object; + }; + + /** + * Converts this CertificateConfigPair to JSON. + * @function toJSON + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @instance + * @returns {Object.} JSON object + */ + CertificateConfigPair.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CertificateConfigPair + * @function getTypeUrl + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CertificateConfigPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair"; + }; + + return CertificateConfigPair; + })(); + + RegistryHostConfig.RegistryHeader = (function() { + + /** + * Properties of a RegistryHeader. + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @interface IRegistryHeader + * @property {string|null} [key] RegistryHeader key + * @property {Array.|null} [value] RegistryHeader value + */ + + /** + * Constructs a new RegistryHeader. + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @classdesc Represents a RegistryHeader. + * @implements IRegistryHeader + * @constructor + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader=} [properties] Properties to set + */ + function RegistryHeader(properties) { + this.value = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RegistryHeader key. + * @member {string} key + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @instance + */ + RegistryHeader.prototype.key = ""; + + /** + * RegistryHeader value. + * @member {Array.} value + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @instance + */ + RegistryHeader.prototype.value = $util.emptyArray; + + /** + * Creates a new RegistryHeader instance using the specified properties. + * @function create + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader=} [properties] Properties to set + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader} RegistryHeader instance + */ + RegistryHeader.create = function create(properties) { + return new RegistryHeader(properties); + }; + + /** + * Encodes the specified RegistryHeader message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages. + * @function encode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader} message RegistryHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RegistryHeader.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.key); + if (message.value != null && message.value.length) + for (var i = 0; i < message.value.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.value[i]); + return writer; + }; + + /** + * Encodes the specified RegistryHeader message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.IRegistryHeader} message RegistryHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RegistryHeader.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RegistryHeader message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader} RegistryHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RegistryHeader.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.key = reader.string(); + break; + } + case 2: { + if (!(message.value && message.value.length)) + message.value = []; + message.value.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RegistryHeader message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader} RegistryHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RegistryHeader.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RegistryHeader message. + * @function verify + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RegistryHeader.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.key != null && message.hasOwnProperty("key")) + if (!$util.isString(message.key)) + return "key: string expected"; + if (message.value != null && message.hasOwnProperty("value")) { + if (!Array.isArray(message.value)) + return "value: array expected"; + for (var i = 0; i < message.value.length; ++i) + if (!$util.isString(message.value[i])) + return "value: string[] expected"; + } + return null; + }; + + /** + * Creates a RegistryHeader message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader} RegistryHeader + */ + RegistryHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader) + return object; + var message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader(); + if (object.key != null) + message.key = String(object.key); + if (object.value) { + if (!Array.isArray(object.value)) + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.value: array expected"); + message.value = []; + for (var i = 0; i < object.value.length; ++i) + message.value[i] = String(object.value[i]); + } + return message; + }; + + /** + * Creates a plain object from a RegistryHeader message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader} message RegistryHeader + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RegistryHeader.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.value = []; + if (options.defaults) + object.key = ""; + if (message.key != null && message.hasOwnProperty("key")) + object.key = message.key; + if (message.value && message.value.length) { + object.value = []; + for (var j = 0; j < message.value.length; ++j) + object.value[j] = message.value[j]; + } + return object; + }; + + /** + * Converts this RegistryHeader to JSON. + * @function toJSON + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @instance + * @returns {Object.} JSON object + */ + RegistryHeader.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RegistryHeader + * @function getTypeUrl + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RegistryHeader.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader"; + }; + + return RegistryHeader; + })(); + + /** + * HostCapability enum. + * @name google.container.v1.ContainerdConfig.RegistryHostConfig.HostCapability + * @enum {number} + * @property {number} HOST_CAPABILITY_UNSPECIFIED=0 HOST_CAPABILITY_UNSPECIFIED value + * @property {number} HOST_CAPABILITY_PULL=1 HOST_CAPABILITY_PULL value + * @property {number} HOST_CAPABILITY_RESOLVE=2 HOST_CAPABILITY_RESOLVE value + * @property {number} HOST_CAPABILITY_PUSH=3 HOST_CAPABILITY_PUSH value + */ + RegistryHostConfig.HostCapability = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "HOST_CAPABILITY_UNSPECIFIED"] = 0; + values[valuesById[1] = "HOST_CAPABILITY_PULL"] = 1; + values[valuesById[2] = "HOST_CAPABILITY_RESOLVE"] = 2; + values[valuesById[3] = "HOST_CAPABILITY_PUSH"] = 3; + return values; + })(); + + RegistryHostConfig.HostConfig = (function() { + + /** + * Properties of a HostConfig. + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @interface IHostConfig + * @property {string|null} [host] HostConfig host + * @property {Array.|null} [capabilities] HostConfig capabilities + * @property {boolean|null} [overridePath] HostConfig overridePath + * @property {Array.|null} [header] HostConfig header + * @property {Array.|null} [ca] HostConfig ca + * @property {Array.|null} [client] HostConfig client + * @property {google.protobuf.IDuration|null} [dialTimeout] HostConfig dialTimeout + */ + + /** + * Constructs a new HostConfig. + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig + * @classdesc Represents a HostConfig. + * @implements IHostConfig + * @constructor + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig=} [properties] Properties to set + */ + function HostConfig(properties) { + this.capabilities = []; + this.header = []; + this.ca = []; + this.client = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * HostConfig host. + * @member {string} host + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.host = ""; + + /** + * HostConfig capabilities. + * @member {Array.} capabilities + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.capabilities = $util.emptyArray; + + /** + * HostConfig overridePath. + * @member {boolean} overridePath + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.overridePath = false; + + /** + * HostConfig header. + * @member {Array.} header + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.header = $util.emptyArray; + + /** + * HostConfig ca. + * @member {Array.} ca + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.ca = $util.emptyArray; + + /** + * HostConfig client. + * @member {Array.} client + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.client = $util.emptyArray; + + /** + * HostConfig dialTimeout. + * @member {google.protobuf.IDuration|null|undefined} dialTimeout + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.dialTimeout = null; + + /** + * Creates a new HostConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig=} [properties] Properties to set + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig} HostConfig instance + */ + HostConfig.create = function create(properties) { + return new HostConfig(properties); + }; + + /** + * Encodes the specified HostConfig message. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig} message HostConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + HostConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.host != null && Object.hasOwnProperty.call(message, "host")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.host); + if (message.capabilities != null && message.capabilities.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.capabilities.length; ++i) + writer.int32(message.capabilities[i]); + writer.ldelim(); + } + if (message.overridePath != null && Object.hasOwnProperty.call(message, "overridePath")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.overridePath); + if (message.header != null && message.header.length) + for (var i = 0; i < message.header.length; ++i) + $root.google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.encode(message.header[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.ca != null && message.ca.length) + for (var i = 0; i < message.ca.length; ++i) + $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.encode(message.ca[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.client != null && message.client.length) + for (var i = 0; i < message.client.length; ++i) + $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.encode(message.client[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.dialTimeout != null && Object.hasOwnProperty.call(message, "dialTimeout")) + $root.google.protobuf.Duration.encode(message.dialTimeout, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified HostConfig message, length delimited. Does not implicitly {@link google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.IHostConfig} message HostConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + HostConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a HostConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig} HostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + HostConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.host = reader.string(); + break; + } + case 2: { + if (!(message.capabilities && message.capabilities.length)) + message.capabilities = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.capabilities.push(reader.int32()); + } else + message.capabilities.push(reader.int32()); + break; + } + case 3: { + message.overridePath = reader.bool(); + break; + } + case 4: { + if (!(message.header && message.header.length)) + message.header = []; + message.header.push($root.google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.decode(reader, reader.uint32())); + break; + } + case 5: { + if (!(message.ca && message.ca.length)) + message.ca = []; + message.ca.push($root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.decode(reader, reader.uint32())); + break; + } + case 6: { + if (!(message.client && message.client.length)) + message.client = []; + message.client.push($root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.decode(reader, reader.uint32())); + break; + } + case 7: { + message.dialTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a HostConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig} HostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + HostConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a HostConfig message. + * @function verify + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + HostConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.host != null && message.hasOwnProperty("host")) + if (!$util.isString(message.host)) + return "host: string expected"; + if (message.capabilities != null && message.hasOwnProperty("capabilities")) { + if (!Array.isArray(message.capabilities)) + return "capabilities: array expected"; + for (var i = 0; i < message.capabilities.length; ++i) + switch (message.capabilities[i]) { + default: + return "capabilities: enum value[] expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + } + if (message.overridePath != null && message.hasOwnProperty("overridePath")) + if (typeof message.overridePath !== "boolean") + return "overridePath: boolean expected"; + if (message.header != null && message.hasOwnProperty("header")) { + if (!Array.isArray(message.header)) + return "header: array expected"; + for (var i = 0; i < message.header.length; ++i) { + var error = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify(message.header[i]); + if (error) + return "header." + error; + } + } + if (message.ca != null && message.hasOwnProperty("ca")) { + if (!Array.isArray(message.ca)) + return "ca: array expected"; + for (var i = 0; i < message.ca.length; ++i) { + var error = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify(message.ca[i]); + if (error) + return "ca." + error; + } + } + if (message.client != null && message.hasOwnProperty("client")) { + if (!Array.isArray(message.client)) + return "client: array expected"; + for (var i = 0; i < message.client.length; ++i) { + var error = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify(message.client[i]); + if (error) + return "client." + error; + } + } + if (message.dialTimeout != null && message.hasOwnProperty("dialTimeout")) { + var error = $root.google.protobuf.Duration.verify(message.dialTimeout); + if (error) + return "dialTimeout." + error; + } + return null; + }; + + /** + * Creates a HostConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig} HostConfig + */ + HostConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig) + return object; + var message = new $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig(); + if (object.host != null) + message.host = String(object.host); + if (object.capabilities) { + if (!Array.isArray(object.capabilities)) + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.capabilities: array expected"); + message.capabilities = []; + for (var i = 0; i < object.capabilities.length; ++i) + switch (object.capabilities[i]) { + default: + if (typeof object.capabilities[i] === "number") { + message.capabilities[i] = object.capabilities[i]; + break; + } + case "HOST_CAPABILITY_UNSPECIFIED": + case 0: + message.capabilities[i] = 0; + break; + case "HOST_CAPABILITY_PULL": + case 1: + message.capabilities[i] = 1; + break; + case "HOST_CAPABILITY_RESOLVE": + case 2: + message.capabilities[i] = 2; + break; + case "HOST_CAPABILITY_PUSH": + case 3: + message.capabilities[i] = 3; + break; + } + } + if (object.overridePath != null) + message.overridePath = Boolean(object.overridePath); + if (object.header) { + if (!Array.isArray(object.header)) + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.header: array expected"); + message.header = []; + for (var i = 0; i < object.header.length; ++i) { + if (typeof object.header[i] !== "object") + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.header: object expected"); + message.header[i] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.fromObject(object.header[i]); + } + } + if (object.ca) { + if (!Array.isArray(object.ca)) + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.ca: array expected"); + message.ca = []; + for (var i = 0; i < object.ca.length; ++i) { + if (typeof object.ca[i] !== "object") + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.ca: object expected"); + message.ca[i] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.fromObject(object.ca[i]); + } + } + if (object.client) { + if (!Array.isArray(object.client)) + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.client: array expected"); + message.client = []; + for (var i = 0; i < object.client.length; ++i) { + if (typeof object.client[i] !== "object") + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.client: object expected"); + message.client[i] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.fromObject(object.client[i]); + } + } + if (object.dialTimeout != null) { + if (typeof object.dialTimeout !== "object") + throw TypeError(".google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig.dialTimeout: object expected"); + message.dialTimeout = $root.google.protobuf.Duration.fromObject(object.dialTimeout); + } + return message; + }; + + /** + * Creates a plain object from a HostConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig} message HostConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + HostConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.capabilities = []; + object.header = []; + object.ca = []; + object.client = []; + } + if (options.defaults) { + object.host = ""; + object.overridePath = false; + object.dialTimeout = null; + } + if (message.host != null && message.hasOwnProperty("host")) + object.host = message.host; + if (message.capabilities && message.capabilities.length) { + object.capabilities = []; + for (var j = 0; j < message.capabilities.length; ++j) + object.capabilities[j] = options.enums === String ? $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostCapability[message.capabilities[j]] === undefined ? message.capabilities[j] : $root.google.container.v1.ContainerdConfig.RegistryHostConfig.HostCapability[message.capabilities[j]] : message.capabilities[j]; + } + if (message.overridePath != null && message.hasOwnProperty("overridePath")) + object.overridePath = message.overridePath; + if (message.header && message.header.length) { + object.header = []; + for (var j = 0; j < message.header.length; ++j) + object.header[j] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.RegistryHeader.toObject(message.header[j], options); + } + if (message.ca && message.ca.length) { + object.ca = []; + for (var j = 0; j < message.ca.length; ++j) + object.ca[j] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfig.toObject(message.ca[j], options); + } + if (message.client && message.client.length) { + object.client = []; + for (var j = 0; j < message.client.length; ++j) + object.client[j] = $root.google.container.v1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.toObject(message.client[j], options); + } + if (message.dialTimeout != null && message.hasOwnProperty("dialTimeout")) + object.dialTimeout = $root.google.protobuf.Duration.toObject(message.dialTimeout, options); + return object; + }; + + /** + * Converts this HostConfig to JSON. + * @function toJSON + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + * @returns {Object.} JSON object + */ + HostConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for HostConfig + * @function getTypeUrl + * @memberof google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + HostConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.ContainerdConfig.RegistryHostConfig.HostConfig"; + }; + + return HostConfig; + })(); + + return RegistryHostConfig; + })(); + return ContainerdConfig; })(); @@ -12463,6 +15454,7 @@ * @property {google.container.v1.IRayOperatorConfig|null} [rayOperatorConfig] AddonsConfig rayOperatorConfig * @property {google.container.v1.IHighScaleCheckpointingConfig|null} [highScaleCheckpointingConfig] AddonsConfig highScaleCheckpointingConfig * @property {google.container.v1.ILustreCsiDriverConfig|null} [lustreCsiDriverConfig] AddonsConfig lustreCsiDriverConfig + * @property {google.container.v1.ISliceControllerConfig|null} [sliceControllerConfig] AddonsConfig sliceControllerConfig */ /** @@ -12608,6 +15600,14 @@ */ AddonsConfig.prototype.lustreCsiDriverConfig = null; + /** + * AddonsConfig sliceControllerConfig. + * @member {google.container.v1.ISliceControllerConfig|null|undefined} sliceControllerConfig + * @memberof google.container.v1.AddonsConfig + * @instance + */ + AddonsConfig.prototype.sliceControllerConfig = null; + /** * Creates a new AddonsConfig instance using the specified properties. * @function create @@ -12664,6 +15664,8 @@ $root.google.container.v1.HighScaleCheckpointingConfig.encode(message.highScaleCheckpointingConfig, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim(); if (message.lustreCsiDriverConfig != null && Object.hasOwnProperty.call(message, "lustreCsiDriverConfig")) $root.google.container.v1.LustreCsiDriverConfig.encode(message.lustreCsiDriverConfig, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); + if (message.sliceControllerConfig != null && Object.hasOwnProperty.call(message, "sliceControllerConfig")) + $root.google.container.v1.SliceControllerConfig.encode(message.sliceControllerConfig, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim(); return writer; }; @@ -12764,6 +15766,10 @@ message.lustreCsiDriverConfig = $root.google.container.v1.LustreCsiDriverConfig.decode(reader, reader.uint32()); break; } + case 26: { + message.sliceControllerConfig = $root.google.container.v1.SliceControllerConfig.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -12879,6 +15885,11 @@ if (error) return "lustreCsiDriverConfig." + error; } + if (message.sliceControllerConfig != null && message.hasOwnProperty("sliceControllerConfig")) { + var error = $root.google.container.v1.SliceControllerConfig.verify(message.sliceControllerConfig); + if (error) + return "sliceControllerConfig." + error; + } return null; }; @@ -12974,6 +15985,11 @@ throw TypeError(".google.container.v1.AddonsConfig.lustreCsiDriverConfig: object expected"); message.lustreCsiDriverConfig = $root.google.container.v1.LustreCsiDriverConfig.fromObject(object.lustreCsiDriverConfig); } + if (object.sliceControllerConfig != null) { + if (typeof object.sliceControllerConfig !== "object") + throw TypeError(".google.container.v1.AddonsConfig.sliceControllerConfig: object expected"); + message.sliceControllerConfig = $root.google.container.v1.SliceControllerConfig.fromObject(object.sliceControllerConfig); + } return message; }; @@ -13007,6 +16023,7 @@ object.rayOperatorConfig = null; object.highScaleCheckpointingConfig = null; object.lustreCsiDriverConfig = null; + object.sliceControllerConfig = null; } if (message.httpLoadBalancing != null && message.hasOwnProperty("httpLoadBalancing")) object.httpLoadBalancing = $root.google.container.v1.HttpLoadBalancing.toObject(message.httpLoadBalancing, options); @@ -13040,6 +16057,8 @@ object.highScaleCheckpointingConfig = $root.google.container.v1.HighScaleCheckpointingConfig.toObject(message.highScaleCheckpointingConfig, options); if (message.lustreCsiDriverConfig != null && message.hasOwnProperty("lustreCsiDriverConfig")) object.lustreCsiDriverConfig = $root.google.container.v1.LustreCsiDriverConfig.toObject(message.lustreCsiDriverConfig, options); + if (message.sliceControllerConfig != null && message.hasOwnProperty("sliceControllerConfig")) + object.sliceControllerConfig = $root.google.container.v1.SliceControllerConfig.toObject(message.sliceControllerConfig, options); return object; }; @@ -16631,6 +19650,211 @@ return LustreCsiDriverConfig; })(); + v1.SliceControllerConfig = (function() { + + /** + * Properties of a SliceControllerConfig. + * @memberof google.container.v1 + * @interface ISliceControllerConfig + * @property {boolean|null} [enabled] SliceControllerConfig enabled + */ + + /** + * Constructs a new SliceControllerConfig. + * @memberof google.container.v1 + * @classdesc Represents a SliceControllerConfig. + * @implements ISliceControllerConfig + * @constructor + * @param {google.container.v1.ISliceControllerConfig=} [properties] Properties to set + */ + function SliceControllerConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SliceControllerConfig enabled. + * @member {boolean} enabled + * @memberof google.container.v1.SliceControllerConfig + * @instance + */ + SliceControllerConfig.prototype.enabled = false; + + /** + * Creates a new SliceControllerConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {google.container.v1.ISliceControllerConfig=} [properties] Properties to set + * @returns {google.container.v1.SliceControllerConfig} SliceControllerConfig instance + */ + SliceControllerConfig.create = function create(properties) { + return new SliceControllerConfig(properties); + }; + + /** + * Encodes the specified SliceControllerConfig message. Does not implicitly {@link google.container.v1.SliceControllerConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {google.container.v1.ISliceControllerConfig} message SliceControllerConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SliceControllerConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); + return writer; + }; + + /** + * Encodes the specified SliceControllerConfig message, length delimited. Does not implicitly {@link google.container.v1.SliceControllerConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {google.container.v1.ISliceControllerConfig} message SliceControllerConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SliceControllerConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SliceControllerConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.SliceControllerConfig} SliceControllerConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SliceControllerConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.SliceControllerConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.enabled = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SliceControllerConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.SliceControllerConfig} SliceControllerConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SliceControllerConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SliceControllerConfig message. + * @function verify + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SliceControllerConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.enabled != null && message.hasOwnProperty("enabled")) + if (typeof message.enabled !== "boolean") + return "enabled: boolean expected"; + return null; + }; + + /** + * Creates a SliceControllerConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.SliceControllerConfig} SliceControllerConfig + */ + SliceControllerConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.SliceControllerConfig) + return object; + var message = new $root.google.container.v1.SliceControllerConfig(); + if (object.enabled != null) + message.enabled = Boolean(object.enabled); + return message; + }; + + /** + * Creates a plain object from a SliceControllerConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {google.container.v1.SliceControllerConfig} message SliceControllerConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SliceControllerConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.enabled = false; + if (message.enabled != null && message.hasOwnProperty("enabled")) + object.enabled = message.enabled; + return object; + }; + + /** + * Converts this SliceControllerConfig to JSON. + * @function toJSON + * @memberof google.container.v1.SliceControllerConfig + * @instance + * @returns {Object.} JSON object + */ + SliceControllerConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SliceControllerConfig + * @function getTypeUrl + * @memberof google.container.v1.SliceControllerConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SliceControllerConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.SliceControllerConfig"; + }; + + return SliceControllerConfig; + })(); + v1.RayOperatorConfig = (function() { /** @@ -19679,6 +22903,7 @@ * @property {google.container.v1.IRBACBindingConfig|null} [rbacBindingConfig] Cluster rbacBindingConfig * @property {google.container.v1.IGkeAutoUpgradeConfig|null} [gkeAutoUpgradeConfig] Cluster gkeAutoUpgradeConfig * @property {google.container.v1.IAnonymousAuthenticationConfig|null} [anonymousAuthenticationConfig] Cluster anonymousAuthenticationConfig + * @property {google.container.v1.IManagedOpenTelemetryConfig|null} [managedOpentelemetryConfig] Cluster managedOpentelemetryConfig */ /** @@ -20326,6 +23551,14 @@ */ Cluster.prototype.anonymousAuthenticationConfig = null; + /** + * Cluster managedOpentelemetryConfig. + * @member {google.container.v1.IManagedOpenTelemetryConfig|null|undefined} managedOpentelemetryConfig + * @memberof google.container.v1.Cluster + * @instance + */ + Cluster.prototype.managedOpentelemetryConfig = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -20545,6 +23778,8 @@ $root.google.container.v1.GkeAutoUpgradeConfig.encode(message.gkeAutoUpgradeConfig, writer.uint32(/* id 163, wireType 2 =*/1306).fork()).ldelim(); if (message.anonymousAuthenticationConfig != null && Object.hasOwnProperty.call(message, "anonymousAuthenticationConfig")) $root.google.container.v1.AnonymousAuthenticationConfig.encode(message.anonymousAuthenticationConfig, writer.uint32(/* id 164, wireType 2 =*/1314).fork()).ldelim(); + if (message.managedOpentelemetryConfig != null && Object.hasOwnProperty.call(message, "managedOpentelemetryConfig")) + $root.google.container.v1.ManagedOpenTelemetryConfig.encode(message.managedOpentelemetryConfig, writer.uint32(/* id 168, wireType 2 =*/1346).fork()).ldelim(); return writer; }; @@ -20922,6 +24157,10 @@ message.anonymousAuthenticationConfig = $root.google.container.v1.AnonymousAuthenticationConfig.decode(reader, reader.uint32()); break; } + case 168: { + message.managedOpentelemetryConfig = $root.google.container.v1.ManagedOpenTelemetryConfig.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -21328,6 +24567,11 @@ if (error) return "anonymousAuthenticationConfig." + error; } + if (message.managedOpentelemetryConfig != null && message.hasOwnProperty("managedOpentelemetryConfig")) { + var error = $root.google.container.v1.ManagedOpenTelemetryConfig.verify(message.managedOpentelemetryConfig); + if (error) + return "managedOpentelemetryConfig." + error; + } return null; }; @@ -21695,6 +24939,11 @@ throw TypeError(".google.container.v1.Cluster.anonymousAuthenticationConfig: object expected"); message.anonymousAuthenticationConfig = $root.google.container.v1.AnonymousAuthenticationConfig.fromObject(object.anonymousAuthenticationConfig); } + if (object.managedOpentelemetryConfig != null) { + if (typeof object.managedOpentelemetryConfig !== "object") + throw TypeError(".google.container.v1.Cluster.managedOpentelemetryConfig: object expected"); + message.managedOpentelemetryConfig = $root.google.container.v1.ManagedOpenTelemetryConfig.fromObject(object.managedOpentelemetryConfig); + } return message; }; @@ -21788,6 +25037,7 @@ object.compliancePostureConfig = null; object.gkeAutoUpgradeConfig = null; object.anonymousAuthenticationConfig = null; + object.managedOpentelemetryConfig = null; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -21979,6 +25229,8 @@ object.gkeAutoUpgradeConfig = $root.google.container.v1.GkeAutoUpgradeConfig.toObject(message.gkeAutoUpgradeConfig, options); if (message.anonymousAuthenticationConfig != null && message.hasOwnProperty("anonymousAuthenticationConfig")) object.anonymousAuthenticationConfig = $root.google.container.v1.AnonymousAuthenticationConfig.toObject(message.anonymousAuthenticationConfig, options); + if (message.managedOpentelemetryConfig != null && message.hasOwnProperty("managedOpentelemetryConfig")) + object.managedOpentelemetryConfig = $root.google.container.v1.ManagedOpenTelemetryConfig.toObject(message.managedOpentelemetryConfig, options); return object; }; @@ -22299,6 +25551,7 @@ * @property {Array.|null} [serviceAccountVerificationKeys] UserManagedKeysConfig serviceAccountVerificationKeys * @property {string|null} [aggregationCa] UserManagedKeysConfig aggregationCa * @property {string|null} [controlPlaneDiskEncryptionKey] UserManagedKeysConfig controlPlaneDiskEncryptionKey + * @property {Array.|null} [controlPlaneDiskEncryptionKeyVersions] UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions * @property {string|null} [gkeopsEtcdBackupEncryptionKey] UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey */ @@ -22313,6 +25566,7 @@ function UserManagedKeysConfig(properties) { this.serviceAccountSigningKeys = []; this.serviceAccountVerificationKeys = []; + this.controlPlaneDiskEncryptionKeyVersions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -22375,6 +25629,14 @@ */ UserManagedKeysConfig.prototype.controlPlaneDiskEncryptionKey = ""; + /** + * UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions. + * @member {Array.} controlPlaneDiskEncryptionKeyVersions + * @memberof google.container.v1.UserManagedKeysConfig + * @instance + */ + UserManagedKeysConfig.prototype.controlPlaneDiskEncryptionKeyVersions = $util.emptyArray; + /** * UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey. * @member {string} gkeopsEtcdBackupEncryptionKey @@ -22425,6 +25687,9 @@ writer.uint32(/* id 16, wireType 2 =*/130).string(message.controlPlaneDiskEncryptionKey); if (message.gkeopsEtcdBackupEncryptionKey != null && Object.hasOwnProperty.call(message, "gkeopsEtcdBackupEncryptionKey")) writer.uint32(/* id 17, wireType 2 =*/138).string(message.gkeopsEtcdBackupEncryptionKey); + if (message.controlPlaneDiskEncryptionKeyVersions != null && message.controlPlaneDiskEncryptionKeyVersions.length) + for (var i = 0; i < message.controlPlaneDiskEncryptionKeyVersions.length; ++i) + writer.uint32(/* id 18, wireType 2 =*/146).string(message.controlPlaneDiskEncryptionKeyVersions[i]); return writer; }; @@ -22493,6 +25758,12 @@ message.controlPlaneDiskEncryptionKey = reader.string(); break; } + case 18: { + if (!(message.controlPlaneDiskEncryptionKeyVersions && message.controlPlaneDiskEncryptionKeyVersions.length)) + message.controlPlaneDiskEncryptionKeyVersions = []; + message.controlPlaneDiskEncryptionKeyVersions.push(reader.string()); + break; + } case 17: { message.gkeopsEtcdBackupEncryptionKey = reader.string(); break; @@ -22561,6 +25832,13 @@ if (message.controlPlaneDiskEncryptionKey != null && message.hasOwnProperty("controlPlaneDiskEncryptionKey")) if (!$util.isString(message.controlPlaneDiskEncryptionKey)) return "controlPlaneDiskEncryptionKey: string expected"; + if (message.controlPlaneDiskEncryptionKeyVersions != null && message.hasOwnProperty("controlPlaneDiskEncryptionKeyVersions")) { + if (!Array.isArray(message.controlPlaneDiskEncryptionKeyVersions)) + return "controlPlaneDiskEncryptionKeyVersions: array expected"; + for (var i = 0; i < message.controlPlaneDiskEncryptionKeyVersions.length; ++i) + if (!$util.isString(message.controlPlaneDiskEncryptionKeyVersions[i])) + return "controlPlaneDiskEncryptionKeyVersions: string[] expected"; + } if (message.gkeopsEtcdBackupEncryptionKey != null && message.hasOwnProperty("gkeopsEtcdBackupEncryptionKey")) if (!$util.isString(message.gkeopsEtcdBackupEncryptionKey)) return "gkeopsEtcdBackupEncryptionKey: string expected"; @@ -22603,6 +25881,13 @@ message.aggregationCa = String(object.aggregationCa); if (object.controlPlaneDiskEncryptionKey != null) message.controlPlaneDiskEncryptionKey = String(object.controlPlaneDiskEncryptionKey); + if (object.controlPlaneDiskEncryptionKeyVersions) { + if (!Array.isArray(object.controlPlaneDiskEncryptionKeyVersions)) + throw TypeError(".google.container.v1.UserManagedKeysConfig.controlPlaneDiskEncryptionKeyVersions: array expected"); + message.controlPlaneDiskEncryptionKeyVersions = []; + for (var i = 0; i < object.controlPlaneDiskEncryptionKeyVersions.length; ++i) + message.controlPlaneDiskEncryptionKeyVersions[i] = String(object.controlPlaneDiskEncryptionKeyVersions[i]); + } if (object.gkeopsEtcdBackupEncryptionKey != null) message.gkeopsEtcdBackupEncryptionKey = String(object.gkeopsEtcdBackupEncryptionKey); return message; @@ -22624,6 +25909,7 @@ if (options.arrays || options.defaults) { object.serviceAccountSigningKeys = []; object.serviceAccountVerificationKeys = []; + object.controlPlaneDiskEncryptionKeyVersions = []; } if (options.defaults) { object.clusterCa = ""; @@ -22655,6 +25941,11 @@ object.controlPlaneDiskEncryptionKey = message.controlPlaneDiskEncryptionKey; if (message.gkeopsEtcdBackupEncryptionKey != null && message.hasOwnProperty("gkeopsEtcdBackupEncryptionKey")) object.gkeopsEtcdBackupEncryptionKey = message.gkeopsEtcdBackupEncryptionKey; + if (message.controlPlaneDiskEncryptionKeyVersions && message.controlPlaneDiskEncryptionKeyVersions.length) { + object.controlPlaneDiskEncryptionKeyVersions = []; + for (var j = 0; j < message.controlPlaneDiskEncryptionKeyVersions.length; ++j) + object.controlPlaneDiskEncryptionKeyVersions[j] = message.controlPlaneDiskEncryptionKeyVersions[j]; + } return object; }; @@ -24897,6 +28188,8 @@ * @property {google.container.v1.IAnonymousAuthenticationConfig|null} [desiredAnonymousAuthenticationConfig] ClusterUpdate desiredAnonymousAuthenticationConfig * @property {google.container.v1.IGkeAutoUpgradeConfig|null} [gkeAutoUpgradeConfig] ClusterUpdate gkeAutoUpgradeConfig * @property {google.container.v1.INetworkTierConfig|null} [desiredNetworkTierConfig] ClusterUpdate desiredNetworkTierConfig + * @property {google.container.v1.IPrivilegedAdmissionConfig|null} [desiredPrivilegedAdmissionConfig] ClusterUpdate desiredPrivilegedAdmissionConfig + * @property {google.container.v1.IManagedOpenTelemetryConfig|null} [desiredManagedOpentelemetryConfig] ClusterUpdate desiredManagedOpentelemetryConfig */ /** @@ -25491,6 +28784,22 @@ */ ClusterUpdate.prototype.desiredNetworkTierConfig = null; + /** + * ClusterUpdate desiredPrivilegedAdmissionConfig. + * @member {google.container.v1.IPrivilegedAdmissionConfig|null|undefined} desiredPrivilegedAdmissionConfig + * @memberof google.container.v1.ClusterUpdate + * @instance + */ + ClusterUpdate.prototype.desiredPrivilegedAdmissionConfig = null; + + /** + * ClusterUpdate desiredManagedOpentelemetryConfig. + * @member {google.container.v1.IManagedOpenTelemetryConfig|null|undefined} desiredManagedOpentelemetryConfig + * @memberof google.container.v1.ClusterUpdate + * @instance + */ + ClusterUpdate.prototype.desiredManagedOpentelemetryConfig = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -25723,6 +29032,10 @@ $root.google.container.v1.NetworkTierConfig.encode(message.desiredNetworkTierConfig, writer.uint32(/* id 155, wireType 2 =*/1242).fork()).ldelim(); if (message.desiredAnonymousAuthenticationConfig != null && Object.hasOwnProperty.call(message, "desiredAnonymousAuthenticationConfig")) $root.google.container.v1.AnonymousAuthenticationConfig.encode(message.desiredAnonymousAuthenticationConfig, writer.uint32(/* id 156, wireType 2 =*/1250).fork()).ldelim(); + if (message.desiredPrivilegedAdmissionConfig != null && Object.hasOwnProperty.call(message, "desiredPrivilegedAdmissionConfig")) + $root.google.container.v1.PrivilegedAdmissionConfig.encode(message.desiredPrivilegedAdmissionConfig, writer.uint32(/* id 159, wireType 2 =*/1274).fork()).ldelim(); + if (message.desiredManagedOpentelemetryConfig != null && Object.hasOwnProperty.call(message, "desiredManagedOpentelemetryConfig")) + $root.google.container.v1.ManagedOpenTelemetryConfig.encode(message.desiredManagedOpentelemetryConfig, writer.uint32(/* id 163, wireType 2 =*/1306).fork()).ldelim(); return writer; }; @@ -26049,6 +29362,14 @@ message.desiredNetworkTierConfig = $root.google.container.v1.NetworkTierConfig.decode(reader, reader.uint32()); break; } + case 159: { + message.desiredPrivilegedAdmissionConfig = $root.google.container.v1.PrivilegedAdmissionConfig.decode(reader, reader.uint32()); + break; + } + case 163: { + message.desiredManagedOpentelemetryConfig = $root.google.container.v1.ManagedOpenTelemetryConfig.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -26461,6 +29782,16 @@ if (error) return "desiredNetworkTierConfig." + error; } + if (message.desiredPrivilegedAdmissionConfig != null && message.hasOwnProperty("desiredPrivilegedAdmissionConfig")) { + var error = $root.google.container.v1.PrivilegedAdmissionConfig.verify(message.desiredPrivilegedAdmissionConfig); + if (error) + return "desiredPrivilegedAdmissionConfig." + error; + } + if (message.desiredManagedOpentelemetryConfig != null && message.hasOwnProperty("desiredManagedOpentelemetryConfig")) { + var error = $root.google.container.v1.ManagedOpenTelemetryConfig.verify(message.desiredManagedOpentelemetryConfig); + if (error) + return "desiredManagedOpentelemetryConfig." + error; + } return null; }; @@ -26863,6 +30194,16 @@ throw TypeError(".google.container.v1.ClusterUpdate.desiredNetworkTierConfig: object expected"); message.desiredNetworkTierConfig = $root.google.container.v1.NetworkTierConfig.fromObject(object.desiredNetworkTierConfig); } + if (object.desiredPrivilegedAdmissionConfig != null) { + if (typeof object.desiredPrivilegedAdmissionConfig !== "object") + throw TypeError(".google.container.v1.ClusterUpdate.desiredPrivilegedAdmissionConfig: object expected"); + message.desiredPrivilegedAdmissionConfig = $root.google.container.v1.PrivilegedAdmissionConfig.fromObject(object.desiredPrivilegedAdmissionConfig); + } + if (object.desiredManagedOpentelemetryConfig != null) { + if (typeof object.desiredManagedOpentelemetryConfig !== "object") + throw TypeError(".google.container.v1.ClusterUpdate.desiredManagedOpentelemetryConfig: object expected"); + message.desiredManagedOpentelemetryConfig = $root.google.container.v1.ManagedOpenTelemetryConfig.fromObject(object.desiredManagedOpentelemetryConfig); + } return message; }; @@ -26943,6 +30284,8 @@ object.gkeAutoUpgradeConfig = null; object.desiredNetworkTierConfig = null; object.desiredAnonymousAuthenticationConfig = null; + object.desiredPrivilegedAdmissionConfig = null; + object.desiredManagedOpentelemetryConfig = null; } if (message.desiredNodeVersion != null && message.hasOwnProperty("desiredNodeVersion")) object.desiredNodeVersion = message.desiredNodeVersion; @@ -27121,6 +30464,10 @@ object.desiredNetworkTierConfig = $root.google.container.v1.NetworkTierConfig.toObject(message.desiredNetworkTierConfig, options); if (message.desiredAnonymousAuthenticationConfig != null && message.hasOwnProperty("desiredAnonymousAuthenticationConfig")) object.desiredAnonymousAuthenticationConfig = $root.google.container.v1.AnonymousAuthenticationConfig.toObject(message.desiredAnonymousAuthenticationConfig, options); + if (message.desiredPrivilegedAdmissionConfig != null && message.hasOwnProperty("desiredPrivilegedAdmissionConfig")) + object.desiredPrivilegedAdmissionConfig = $root.google.container.v1.PrivilegedAdmissionConfig.toObject(message.desiredPrivilegedAdmissionConfig, options); + if (message.desiredManagedOpentelemetryConfig != null && message.hasOwnProperty("desiredManagedOpentelemetryConfig")) + object.desiredManagedOpentelemetryConfig = $root.google.container.v1.ManagedOpenTelemetryConfig.toObject(message.desiredManagedOpentelemetryConfig, options); return object; }; @@ -27427,6 +30774,7 @@ * @interface IAdditionalIPRangesConfig * @property {string|null} [subnetwork] AdditionalIPRangesConfig subnetwork * @property {Array.|null} [podIpv4RangeNames] AdditionalIPRangesConfig podIpv4RangeNames + * @property {google.container.v1.AdditionalIPRangesConfig.Status|null} [status] AdditionalIPRangesConfig status */ /** @@ -27461,6 +30809,14 @@ */ AdditionalIPRangesConfig.prototype.podIpv4RangeNames = $util.emptyArray; + /** + * AdditionalIPRangesConfig status. + * @member {google.container.v1.AdditionalIPRangesConfig.Status} status + * @memberof google.container.v1.AdditionalIPRangesConfig + * @instance + */ + AdditionalIPRangesConfig.prototype.status = 0; + /** * Creates a new AdditionalIPRangesConfig instance using the specified properties. * @function create @@ -27490,6 +30846,8 @@ if (message.podIpv4RangeNames != null && message.podIpv4RangeNames.length) for (var i = 0; i < message.podIpv4RangeNames.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).string(message.podIpv4RangeNames[i]); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.status); return writer; }; @@ -27536,6 +30894,10 @@ message.podIpv4RangeNames.push(reader.string()); break; } + case 3: { + message.status = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -27581,6 +30943,15 @@ if (!$util.isString(message.podIpv4RangeNames[i])) return "podIpv4RangeNames: string[] expected"; } + if (message.status != null && message.hasOwnProperty("status")) + switch (message.status) { + default: + return "status: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; @@ -27605,6 +30976,26 @@ for (var i = 0; i < object.podIpv4RangeNames.length; ++i) message.podIpv4RangeNames[i] = String(object.podIpv4RangeNames[i]); } + switch (object.status) { + default: + if (typeof object.status === "number") { + message.status = object.status; + break; + } + break; + case "STATUS_UNSPECIFIED": + case 0: + message.status = 0; + break; + case "ACTIVE": + case 1: + message.status = 1; + break; + case "DRAINING": + case 2: + message.status = 2; + break; + } return message; }; @@ -27623,8 +31014,10 @@ var object = {}; if (options.arrays || options.defaults) object.podIpv4RangeNames = []; - if (options.defaults) + if (options.defaults) { object.subnetwork = ""; + object.status = options.enums === String ? "STATUS_UNSPECIFIED" : 0; + } if (message.subnetwork != null && message.hasOwnProperty("subnetwork")) object.subnetwork = message.subnetwork; if (message.podIpv4RangeNames && message.podIpv4RangeNames.length) { @@ -27632,6 +31025,8 @@ for (var j = 0; j < message.podIpv4RangeNames.length; ++j) object.podIpv4RangeNames[j] = message.podIpv4RangeNames[j]; } + if (message.status != null && message.hasOwnProperty("status")) + object.status = options.enums === String ? $root.google.container.v1.AdditionalIPRangesConfig.Status[message.status] === undefined ? message.status : $root.google.container.v1.AdditionalIPRangesConfig.Status[message.status] : message.status; return object; }; @@ -27661,6 +31056,22 @@ return typeUrlPrefix + "/google.container.v1.AdditionalIPRangesConfig"; }; + /** + * Status enum. + * @name google.container.v1.AdditionalIPRangesConfig.Status + * @enum {number} + * @property {number} STATUS_UNSPECIFIED=0 STATUS_UNSPECIFIED value + * @property {number} ACTIVE=1 ACTIVE value + * @property {number} DRAINING=2 DRAINING value + */ + AdditionalIPRangesConfig.Status = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATUS_UNSPECIFIED"] = 0; + values[valuesById[1] = "ACTIVE"] = 1; + values[valuesById[2] = "DRAINING"] = 2; + return values; + })(); + return AdditionalIPRangesConfig; })(); @@ -30921,6 +34332,8 @@ * @property {google.protobuf.IDuration|null} [maxRunDuration] UpdateNodePoolRequest maxRunDuration * @property {boolean|null} [flexStart] UpdateNodePoolRequest flexStart * @property {google.container.v1.IBootDisk|null} [bootDisk] UpdateNodePoolRequest bootDisk + * @property {google.container.v1.NodePool.INodeDrainConfig|null} [nodeDrainConfig] UpdateNodePoolRequest nodeDrainConfig + * @property {google.protobuf.IDuration|null} [consolidationDelay] UpdateNodePoolRequest consolidationDelay */ /** @@ -31221,6 +34634,22 @@ */ UpdateNodePoolRequest.prototype.bootDisk = null; + /** + * UpdateNodePoolRequest nodeDrainConfig. + * @member {google.container.v1.NodePool.INodeDrainConfig|null|undefined} nodeDrainConfig + * @memberof google.container.v1.UpdateNodePoolRequest + * @instance + */ + UpdateNodePoolRequest.prototype.nodeDrainConfig = null; + + /** + * UpdateNodePoolRequest consolidationDelay. + * @member {google.protobuf.IDuration|null|undefined} consolidationDelay + * @memberof google.container.v1.UpdateNodePoolRequest + * @instance + */ + UpdateNodePoolRequest.prototype.consolidationDelay = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -31327,6 +34756,10 @@ writer.uint32(/* id 46, wireType 0 =*/368).bool(message.flexStart); if (message.bootDisk != null && Object.hasOwnProperty.call(message, "bootDisk")) $root.google.container.v1.BootDisk.encode(message.bootDisk, writer.uint32(/* id 47, wireType 2 =*/378).fork()).ldelim(); + if (message.nodeDrainConfig != null && Object.hasOwnProperty.call(message, "nodeDrainConfig")) + $root.google.container.v1.NodePool.NodeDrainConfig.encode(message.nodeDrainConfig, writer.uint32(/* id 48, wireType 2 =*/386).fork()).ldelim(); + if (message.consolidationDelay != null && Object.hasOwnProperty.call(message, "consolidationDelay")) + $root.google.protobuf.Duration.encode(message.consolidationDelay, writer.uint32(/* id 49, wireType 2 =*/394).fork()).ldelim(); return writer; }; @@ -31509,6 +34942,14 @@ message.bootDisk = $root.google.container.v1.BootDisk.decode(reader, reader.uint32()); break; } + case 48: { + message.nodeDrainConfig = $root.google.container.v1.NodePool.NodeDrainConfig.decode(reader, reader.uint32()); + break; + } + case 49: { + message.consolidationDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -31706,6 +35147,16 @@ if (error) return "bootDisk." + error; } + if (message.nodeDrainConfig != null && message.hasOwnProperty("nodeDrainConfig")) { + var error = $root.google.container.v1.NodePool.NodeDrainConfig.verify(message.nodeDrainConfig); + if (error) + return "nodeDrainConfig." + error; + } + if (message.consolidationDelay != null && message.hasOwnProperty("consolidationDelay")) { + var error = $root.google.protobuf.Duration.verify(message.consolidationDelay); + if (error) + return "consolidationDelay." + error; + } return null; }; @@ -31876,6 +35327,16 @@ throw TypeError(".google.container.v1.UpdateNodePoolRequest.bootDisk: object expected"); message.bootDisk = $root.google.container.v1.BootDisk.fromObject(object.bootDisk); } + if (object.nodeDrainConfig != null) { + if (typeof object.nodeDrainConfig !== "object") + throw TypeError(".google.container.v1.UpdateNodePoolRequest.nodeDrainConfig: object expected"); + message.nodeDrainConfig = $root.google.container.v1.NodePool.NodeDrainConfig.fromObject(object.nodeDrainConfig); + } + if (object.consolidationDelay != null) { + if (typeof object.consolidationDelay !== "object") + throw TypeError(".google.container.v1.UpdateNodePoolRequest.consolidationDelay: object expected"); + message.consolidationDelay = $root.google.protobuf.Duration.fromObject(object.consolidationDelay); + } return message; }; @@ -31933,6 +35394,8 @@ object.queuedProvisioning = null; object.maxRunDuration = null; object.bootDisk = null; + object.nodeDrainConfig = null; + object.consolidationDelay = null; } if (message.projectId != null && message.hasOwnProperty("projectId")) object.projectId = message.projectId; @@ -32019,6 +35482,10 @@ } if (message.bootDisk != null && message.hasOwnProperty("bootDisk")) object.bootDisk = $root.google.container.v1.BootDisk.toObject(message.bootDisk, options); + if (message.nodeDrainConfig != null && message.hasOwnProperty("nodeDrainConfig")) + object.nodeDrainConfig = $root.google.container.v1.NodePool.NodeDrainConfig.toObject(message.nodeDrainConfig, options); + if (message.consolidationDelay != null && message.hasOwnProperty("consolidationDelay")) + object.consolidationDelay = $root.google.protobuf.Duration.toObject(message.consolidationDelay, options); return object; }; @@ -39098,6 +42565,7 @@ * @property {string|null} [etag] NodePool etag * @property {google.container.v1.NodePool.IQueuedProvisioning|null} [queuedProvisioning] NodePool queuedProvisioning * @property {google.container.v1.IBestEffortProvisioning|null} [bestEffortProvisioning] NodePool bestEffortProvisioning + * @property {google.container.v1.NodePool.INodeDrainConfig|null} [nodeDrainConfig] NodePool nodeDrainConfig */ /** @@ -39286,6 +42754,14 @@ */ NodePool.prototype.bestEffortProvisioning = null; + /** + * NodePool nodeDrainConfig. + * @member {google.container.v1.NodePool.INodeDrainConfig|null|undefined} nodeDrainConfig + * @memberof google.container.v1.NodePool + * @instance + */ + NodePool.prototype.nodeDrainConfig = null; + /** * Creates a new NodePool instance using the specified properties. * @function create @@ -39355,6 +42831,8 @@ $root.google.container.v1.NodePool.QueuedProvisioning.encode(message.queuedProvisioning, writer.uint32(/* id 112, wireType 2 =*/898).fork()).ldelim(); if (message.bestEffortProvisioning != null && Object.hasOwnProperty.call(message, "bestEffortProvisioning")) $root.google.container.v1.BestEffortProvisioning.encode(message.bestEffortProvisioning, writer.uint32(/* id 113, wireType 2 =*/906).fork()).ldelim(); + if (message.nodeDrainConfig != null && Object.hasOwnProperty.call(message, "nodeDrainConfig")) + $root.google.container.v1.NodePool.NodeDrainConfig.encode(message.nodeDrainConfig, writer.uint32(/* id 116, wireType 2 =*/930).fork()).ldelim(); return writer; }; @@ -39481,6 +42959,10 @@ message.bestEffortProvisioning = $root.google.container.v1.BestEffortProvisioning.decode(reader, reader.uint32()); break; } + case 116: { + message.nodeDrainConfig = $root.google.container.v1.NodePool.NodeDrainConfig.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -39623,6 +43105,11 @@ if (error) return "bestEffortProvisioning." + error; } + if (message.nodeDrainConfig != null && message.hasOwnProperty("nodeDrainConfig")) { + var error = $root.google.container.v1.NodePool.NodeDrainConfig.verify(message.nodeDrainConfig); + if (error) + return "nodeDrainConfig." + error; + } return null; }; @@ -39762,6 +43249,11 @@ throw TypeError(".google.container.v1.NodePool.bestEffortProvisioning: object expected"); message.bestEffortProvisioning = $root.google.container.v1.BestEffortProvisioning.fromObject(object.bestEffortProvisioning); } + if (object.nodeDrainConfig != null) { + if (typeof object.nodeDrainConfig !== "object") + throw TypeError(".google.container.v1.NodePool.nodeDrainConfig: object expected"); + message.nodeDrainConfig = $root.google.container.v1.NodePool.NodeDrainConfig.fromObject(object.nodeDrainConfig); + } return message; }; @@ -39802,6 +43294,7 @@ object.etag = ""; object.queuedProvisioning = null; object.bestEffortProvisioning = null; + object.nodeDrainConfig = null; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -39854,6 +43347,8 @@ object.queuedProvisioning = $root.google.container.v1.NodePool.QueuedProvisioning.toObject(message.queuedProvisioning, options); if (message.bestEffortProvisioning != null && message.hasOwnProperty("bestEffortProvisioning")) object.bestEffortProvisioning = $root.google.container.v1.BestEffortProvisioning.toObject(message.bestEffortProvisioning, options); + if (message.nodeDrainConfig != null && message.hasOwnProperty("nodeDrainConfig")) + object.nodeDrainConfig = $root.google.container.v1.NodePool.NodeDrainConfig.toObject(message.nodeDrainConfig, options); return object; }; @@ -40091,6 +43586,7 @@ case 0: case 2: case 3: + case 5: break; } } @@ -40140,6 +43636,10 @@ case 3: message.strategy = 3; break; + case "SHORT_LIVED": + case 5: + message.strategy = 5; + break; } if (object.blueGreenSettings != null) { if (typeof object.blueGreenSettings !== "object") @@ -41343,6 +44843,224 @@ return QueuedProvisioning; })(); + NodePool.NodeDrainConfig = (function() { + + /** + * Properties of a NodeDrainConfig. + * @memberof google.container.v1.NodePool + * @interface INodeDrainConfig + * @property {boolean|null} [respectPdbDuringNodePoolDeletion] NodeDrainConfig respectPdbDuringNodePoolDeletion + */ + + /** + * Constructs a new NodeDrainConfig. + * @memberof google.container.v1.NodePool + * @classdesc Represents a NodeDrainConfig. + * @implements INodeDrainConfig + * @constructor + * @param {google.container.v1.NodePool.INodeDrainConfig=} [properties] Properties to set + */ + function NodeDrainConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * NodeDrainConfig respectPdbDuringNodePoolDeletion. + * @member {boolean|null|undefined} respectPdbDuringNodePoolDeletion + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @instance + */ + NodeDrainConfig.prototype.respectPdbDuringNodePoolDeletion = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(NodeDrainConfig.prototype, "_respectPdbDuringNodePoolDeletion", { + get: $util.oneOfGetter($oneOfFields = ["respectPdbDuringNodePoolDeletion"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new NodeDrainConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {google.container.v1.NodePool.INodeDrainConfig=} [properties] Properties to set + * @returns {google.container.v1.NodePool.NodeDrainConfig} NodeDrainConfig instance + */ + NodeDrainConfig.create = function create(properties) { + return new NodeDrainConfig(properties); + }; + + /** + * Encodes the specified NodeDrainConfig message. Does not implicitly {@link google.container.v1.NodePool.NodeDrainConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {google.container.v1.NodePool.INodeDrainConfig} message NodeDrainConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NodeDrainConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.respectPdbDuringNodePoolDeletion != null && Object.hasOwnProperty.call(message, "respectPdbDuringNodePoolDeletion")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.respectPdbDuringNodePoolDeletion); + return writer; + }; + + /** + * Encodes the specified NodeDrainConfig message, length delimited. Does not implicitly {@link google.container.v1.NodePool.NodeDrainConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {google.container.v1.NodePool.INodeDrainConfig} message NodeDrainConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NodeDrainConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a NodeDrainConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.NodePool.NodeDrainConfig} NodeDrainConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NodeDrainConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.NodePool.NodeDrainConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 3: { + message.respectPdbDuringNodePoolDeletion = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a NodeDrainConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.NodePool.NodeDrainConfig} NodeDrainConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NodeDrainConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a NodeDrainConfig message. + * @function verify + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + NodeDrainConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.respectPdbDuringNodePoolDeletion != null && message.hasOwnProperty("respectPdbDuringNodePoolDeletion")) { + properties._respectPdbDuringNodePoolDeletion = 1; + if (typeof message.respectPdbDuringNodePoolDeletion !== "boolean") + return "respectPdbDuringNodePoolDeletion: boolean expected"; + } + return null; + }; + + /** + * Creates a NodeDrainConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.NodePool.NodeDrainConfig} NodeDrainConfig + */ + NodeDrainConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.NodePool.NodeDrainConfig) + return object; + var message = new $root.google.container.v1.NodePool.NodeDrainConfig(); + if (object.respectPdbDuringNodePoolDeletion != null) + message.respectPdbDuringNodePoolDeletion = Boolean(object.respectPdbDuringNodePoolDeletion); + return message; + }; + + /** + * Creates a plain object from a NodeDrainConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {google.container.v1.NodePool.NodeDrainConfig} message NodeDrainConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + NodeDrainConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.respectPdbDuringNodePoolDeletion != null && message.hasOwnProperty("respectPdbDuringNodePoolDeletion")) { + object.respectPdbDuringNodePoolDeletion = message.respectPdbDuringNodePoolDeletion; + if (options.oneofs) + object._respectPdbDuringNodePoolDeletion = "respectPdbDuringNodePoolDeletion"; + } + return object; + }; + + /** + * Converts this NodeDrainConfig to JSON. + * @function toJSON + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @instance + * @returns {Object.} JSON object + */ + NodeDrainConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for NodeDrainConfig + * @function getTypeUrl + * @memberof google.container.v1.NodePool.NodeDrainConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + NodeDrainConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.NodePool.NodeDrainConfig"; + }; + + return NodeDrainConfig; + })(); + return NodePool; })(); @@ -45088,6 +48806,7 @@ * @property {google.container.v1.IAutoprovisioningNodePoolDefaults|null} [autoprovisioningNodePoolDefaults] ClusterAutoscaling autoprovisioningNodePoolDefaults * @property {Array.|null} [autoprovisioningLocations] ClusterAutoscaling autoprovisioningLocations * @property {google.container.v1.IDefaultComputeClassConfig|null} [defaultComputeClassConfig] ClusterAutoscaling defaultComputeClassConfig + * @property {google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile|null} [autopilotGeneralProfile] ClusterAutoscaling autopilotGeneralProfile */ /** @@ -45155,6 +48874,14 @@ */ ClusterAutoscaling.prototype.defaultComputeClassConfig = null; + /** + * ClusterAutoscaling autopilotGeneralProfile. + * @member {google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile} autopilotGeneralProfile + * @memberof google.container.v1.ClusterAutoscaling + * @instance + */ + ClusterAutoscaling.prototype.autopilotGeneralProfile = 0; + /** * Creates a new ClusterAutoscaling instance using the specified properties. * @function create @@ -45193,6 +48920,8 @@ writer.uint32(/* id 5, wireType 2 =*/42).string(message.autoprovisioningLocations[i]); if (message.defaultComputeClassConfig != null && Object.hasOwnProperty.call(message, "defaultComputeClassConfig")) $root.google.container.v1.DefaultComputeClassConfig.encode(message.defaultComputeClassConfig, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.autopilotGeneralProfile != null && Object.hasOwnProperty.call(message, "autopilotGeneralProfile")) + writer.uint32(/* id 14, wireType 0 =*/112).int32(message.autopilotGeneralProfile); return writer; }; @@ -45257,6 +48986,10 @@ message.defaultComputeClassConfig = $root.google.container.v1.DefaultComputeClassConfig.decode(reader, reader.uint32()); break; } + case 14: { + message.autopilotGeneralProfile = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -45330,6 +49063,14 @@ if (error) return "defaultComputeClassConfig." + error; } + if (message.autopilotGeneralProfile != null && message.hasOwnProperty("autopilotGeneralProfile")) + switch (message.autopilotGeneralProfile) { + default: + return "autopilotGeneralProfile: enum value expected"; + case 0: + case 1: + break; + } return null; }; @@ -45394,6 +49135,22 @@ throw TypeError(".google.container.v1.ClusterAutoscaling.defaultComputeClassConfig: object expected"); message.defaultComputeClassConfig = $root.google.container.v1.DefaultComputeClassConfig.fromObject(object.defaultComputeClassConfig); } + switch (object.autopilotGeneralProfile) { + default: + if (typeof object.autopilotGeneralProfile === "number") { + message.autopilotGeneralProfile = object.autopilotGeneralProfile; + break; + } + break; + case "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED": + case 0: + message.autopilotGeneralProfile = 0; + break; + case "NO_PERFORMANCE": + case 1: + message.autopilotGeneralProfile = 1; + break; + } return message; }; @@ -45419,6 +49176,7 @@ object.autoscalingProfile = options.enums === String ? "PROFILE_UNSPECIFIED" : 0; object.autoprovisioningNodePoolDefaults = null; object.defaultComputeClassConfig = null; + object.autopilotGeneralProfile = options.enums === String ? "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED" : 0; } if (message.enableNodeAutoprovisioning != null && message.hasOwnProperty("enableNodeAutoprovisioning")) object.enableNodeAutoprovisioning = message.enableNodeAutoprovisioning; @@ -45438,6 +49196,8 @@ } if (message.defaultComputeClassConfig != null && message.hasOwnProperty("defaultComputeClassConfig")) object.defaultComputeClassConfig = $root.google.container.v1.DefaultComputeClassConfig.toObject(message.defaultComputeClassConfig, options); + if (message.autopilotGeneralProfile != null && message.hasOwnProperty("autopilotGeneralProfile")) + object.autopilotGeneralProfile = options.enums === String ? $root.google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile[message.autopilotGeneralProfile] === undefined ? message.autopilotGeneralProfile : $root.google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile[message.autopilotGeneralProfile] : message.autopilotGeneralProfile; return object; }; @@ -45483,6 +49243,20 @@ return values; })(); + /** + * AutopilotGeneralProfile enum. + * @name google.container.v1.ClusterAutoscaling.AutopilotGeneralProfile + * @enum {number} + * @property {number} AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED=0 AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED value + * @property {number} NO_PERFORMANCE=1 NO_PERFORMANCE value + */ + ClusterAutoscaling.AutopilotGeneralProfile = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED"] = 0; + values[valuesById[1] = "NO_PERFORMANCE"] = 1; + return values; + })(); + return ClusterAutoscaling; })(); @@ -59627,6 +63401,257 @@ return FastSocket; })(); + v1.GPUDirectConfig = (function() { + + /** + * Properties of a GPUDirectConfig. + * @memberof google.container.v1 + * @interface IGPUDirectConfig + * @property {google.container.v1.GPUDirectConfig.GPUDirectStrategy|null} [gpuDirectStrategy] GPUDirectConfig gpuDirectStrategy + */ + + /** + * Constructs a new GPUDirectConfig. + * @memberof google.container.v1 + * @classdesc Represents a GPUDirectConfig. + * @implements IGPUDirectConfig + * @constructor + * @param {google.container.v1.IGPUDirectConfig=} [properties] Properties to set + */ + function GPUDirectConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GPUDirectConfig gpuDirectStrategy. + * @member {google.container.v1.GPUDirectConfig.GPUDirectStrategy|null|undefined} gpuDirectStrategy + * @memberof google.container.v1.GPUDirectConfig + * @instance + */ + GPUDirectConfig.prototype.gpuDirectStrategy = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(GPUDirectConfig.prototype, "_gpuDirectStrategy", { + get: $util.oneOfGetter($oneOfFields = ["gpuDirectStrategy"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GPUDirectConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {google.container.v1.IGPUDirectConfig=} [properties] Properties to set + * @returns {google.container.v1.GPUDirectConfig} GPUDirectConfig instance + */ + GPUDirectConfig.create = function create(properties) { + return new GPUDirectConfig(properties); + }; + + /** + * Encodes the specified GPUDirectConfig message. Does not implicitly {@link google.container.v1.GPUDirectConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {google.container.v1.IGPUDirectConfig} message GPUDirectConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GPUDirectConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.gpuDirectStrategy != null && Object.hasOwnProperty.call(message, "gpuDirectStrategy")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.gpuDirectStrategy); + return writer; + }; + + /** + * Encodes the specified GPUDirectConfig message, length delimited. Does not implicitly {@link google.container.v1.GPUDirectConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {google.container.v1.IGPUDirectConfig} message GPUDirectConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GPUDirectConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GPUDirectConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.GPUDirectConfig} GPUDirectConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GPUDirectConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.GPUDirectConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.gpuDirectStrategy = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GPUDirectConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.GPUDirectConfig} GPUDirectConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GPUDirectConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GPUDirectConfig message. + * @function verify + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GPUDirectConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.gpuDirectStrategy != null && message.hasOwnProperty("gpuDirectStrategy")) { + properties._gpuDirectStrategy = 1; + switch (message.gpuDirectStrategy) { + default: + return "gpuDirectStrategy: enum value expected"; + case 0: + case 2: + break; + } + } + return null; + }; + + /** + * Creates a GPUDirectConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.GPUDirectConfig} GPUDirectConfig + */ + GPUDirectConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.GPUDirectConfig) + return object; + var message = new $root.google.container.v1.GPUDirectConfig(); + switch (object.gpuDirectStrategy) { + default: + if (typeof object.gpuDirectStrategy === "number") { + message.gpuDirectStrategy = object.gpuDirectStrategy; + break; + } + break; + case "GPU_DIRECT_STRATEGY_UNSPECIFIED": + case 0: + message.gpuDirectStrategy = 0; + break; + case "RDMA": + case 2: + message.gpuDirectStrategy = 2; + break; + } + return message; + }; + + /** + * Creates a plain object from a GPUDirectConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {google.container.v1.GPUDirectConfig} message GPUDirectConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GPUDirectConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.gpuDirectStrategy != null && message.hasOwnProperty("gpuDirectStrategy")) { + object.gpuDirectStrategy = options.enums === String ? $root.google.container.v1.GPUDirectConfig.GPUDirectStrategy[message.gpuDirectStrategy] === undefined ? message.gpuDirectStrategy : $root.google.container.v1.GPUDirectConfig.GPUDirectStrategy[message.gpuDirectStrategy] : message.gpuDirectStrategy; + if (options.oneofs) + object._gpuDirectStrategy = "gpuDirectStrategy"; + } + return object; + }; + + /** + * Converts this GPUDirectConfig to JSON. + * @function toJSON + * @memberof google.container.v1.GPUDirectConfig + * @instance + * @returns {Object.} JSON object + */ + GPUDirectConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GPUDirectConfig + * @function getTypeUrl + * @memberof google.container.v1.GPUDirectConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GPUDirectConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.GPUDirectConfig"; + }; + + /** + * GPUDirectStrategy enum. + * @name google.container.v1.GPUDirectConfig.GPUDirectStrategy + * @enum {number} + * @property {number} GPU_DIRECT_STRATEGY_UNSPECIFIED=0 GPU_DIRECT_STRATEGY_UNSPECIFIED value + * @property {number} RDMA=2 RDMA value + */ + GPUDirectConfig.GPUDirectStrategy = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "GPU_DIRECT_STRATEGY_UNSPECIFIED"] = 0; + values[valuesById[2] = "RDMA"] = 2; + return values; + })(); + + return GPUDirectConfig; + })(); + /** * PrivateIPv6GoogleAccess enum. * @name google.container.v1.PrivateIPv6GoogleAccess @@ -61055,6 +65080,7 @@ * @property {google.protobuf.ITimestamp|null} [extendedSupportEndTime] UpgradeInfoEvent extendedSupportEndTime * @property {string|null} [description] UpgradeInfoEvent description * @property {google.container.v1.UpgradeInfoEvent.EventType|null} [eventType] UpgradeInfoEvent eventType + * @property {google.container.v1.IDisruptionEvent|null} [disruptionEvent] UpgradeInfoEvent disruptionEvent */ /** @@ -61168,6 +65194,14 @@ */ UpgradeInfoEvent.prototype.eventType = 0; + /** + * UpgradeInfoEvent disruptionEvent. + * @member {google.container.v1.IDisruptionEvent|null|undefined} disruptionEvent + * @memberof google.container.v1.UpgradeInfoEvent + * @instance + */ + UpgradeInfoEvent.prototype.disruptionEvent = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -61183,6 +65217,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(UpgradeInfoEvent.prototype, "_disruptionEvent", { + get: $util.oneOfGetter($oneOfFields = ["disruptionEvent"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new UpgradeInfoEvent instance using the specified properties. * @function create @@ -61231,6 +65271,8 @@ writer.uint32(/* id 11, wireType 2 =*/90).string(message.description); if (message.eventType != null && Object.hasOwnProperty.call(message, "eventType")) writer.uint32(/* id 12, wireType 0 =*/96).int32(message.eventType); + if (message.disruptionEvent != null && Object.hasOwnProperty.call(message, "disruptionEvent")) + $root.google.container.v1.DisruptionEvent.encode(message.disruptionEvent, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); return writer; }; @@ -61315,6 +65357,10 @@ message.eventType = reader.int32(); break; } + case 14: { + message.disruptionEvent = $root.google.container.v1.DisruptionEvent.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -61420,8 +65466,17 @@ case 1: case 2: case 3: + case 4: break; } + if (message.disruptionEvent != null && message.hasOwnProperty("disruptionEvent")) { + properties._disruptionEvent = 1; + { + var error = $root.google.container.v1.DisruptionEvent.verify(message.disruptionEvent); + if (error) + return "disruptionEvent." + error; + } + } return null; }; @@ -61538,6 +65593,15 @@ case 3: message.eventType = 3; break; + case "DISRUPTION_EVENT": + case 4: + message.eventType = 4; + break; + } + if (object.disruptionEvent != null) { + if (typeof object.disruptionEvent !== "object") + throw TypeError(".google.container.v1.UpgradeInfoEvent.disruptionEvent: object expected"); + message.disruptionEvent = $root.google.container.v1.DisruptionEvent.fromObject(object.disruptionEvent); } return message; }; @@ -61597,6 +65661,11 @@ object.description = message.description; if (message.eventType != null && message.hasOwnProperty("eventType")) object.eventType = options.enums === String ? $root.google.container.v1.UpgradeInfoEvent.EventType[message.eventType] === undefined ? message.eventType : $root.google.container.v1.UpgradeInfoEvent.EventType[message.eventType] : message.eventType; + if (message.disruptionEvent != null && message.hasOwnProperty("disruptionEvent")) { + object.disruptionEvent = $root.google.container.v1.DisruptionEvent.toObject(message.disruptionEvent, options); + if (options.oneofs) + object._disruptionEvent = "disruptionEvent"; + } return object; }; @@ -61654,6 +65723,7 @@ * @property {number} END_OF_SUPPORT=1 END_OF_SUPPORT value * @property {number} COS_MILESTONE_VERSION_UPDATE=2 COS_MILESTONE_VERSION_UPDATE value * @property {number} UPGRADE_LIFECYCLE=3 UPGRADE_LIFECYCLE value + * @property {number} DISRUPTION_EVENT=4 DISRUPTION_EVENT value */ UpgradeInfoEvent.EventType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -61661,12 +65731,599 @@ values[valuesById[1] = "END_OF_SUPPORT"] = 1; values[valuesById[2] = "COS_MILESTONE_VERSION_UPDATE"] = 2; values[valuesById[3] = "UPGRADE_LIFECYCLE"] = 3; + values[valuesById[4] = "DISRUPTION_EVENT"] = 4; return values; })(); return UpgradeInfoEvent; })(); + v1.DisruptionEvent = (function() { + + /** + * Properties of a DisruptionEvent. + * @memberof google.container.v1 + * @interface IDisruptionEvent + * @property {google.container.v1.DisruptionEvent.DisruptionType|null} [disruptionType] DisruptionEvent disruptionType + * @property {string|null} [pdbBlockedNode] DisruptionEvent pdbBlockedNode + * @property {Array.|null} [pdbBlockedPod] DisruptionEvent pdbBlockedPod + * @property {google.protobuf.IDuration|null} [pdbViolationTimeout] DisruptionEvent pdbViolationTimeout + */ + + /** + * Constructs a new DisruptionEvent. + * @memberof google.container.v1 + * @classdesc Represents a DisruptionEvent. + * @implements IDisruptionEvent + * @constructor + * @param {google.container.v1.IDisruptionEvent=} [properties] Properties to set + */ + function DisruptionEvent(properties) { + this.pdbBlockedPod = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DisruptionEvent disruptionType. + * @member {google.container.v1.DisruptionEvent.DisruptionType} disruptionType + * @memberof google.container.v1.DisruptionEvent + * @instance + */ + DisruptionEvent.prototype.disruptionType = 0; + + /** + * DisruptionEvent pdbBlockedNode. + * @member {string} pdbBlockedNode + * @memberof google.container.v1.DisruptionEvent + * @instance + */ + DisruptionEvent.prototype.pdbBlockedNode = ""; + + /** + * DisruptionEvent pdbBlockedPod. + * @member {Array.} pdbBlockedPod + * @memberof google.container.v1.DisruptionEvent + * @instance + */ + DisruptionEvent.prototype.pdbBlockedPod = $util.emptyArray; + + /** + * DisruptionEvent pdbViolationTimeout. + * @member {google.protobuf.IDuration|null|undefined} pdbViolationTimeout + * @memberof google.container.v1.DisruptionEvent + * @instance + */ + DisruptionEvent.prototype.pdbViolationTimeout = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(DisruptionEvent.prototype, "_pdbViolationTimeout", { + get: $util.oneOfGetter($oneOfFields = ["pdbViolationTimeout"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new DisruptionEvent instance using the specified properties. + * @function create + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {google.container.v1.IDisruptionEvent=} [properties] Properties to set + * @returns {google.container.v1.DisruptionEvent} DisruptionEvent instance + */ + DisruptionEvent.create = function create(properties) { + return new DisruptionEvent(properties); + }; + + /** + * Encodes the specified DisruptionEvent message. Does not implicitly {@link google.container.v1.DisruptionEvent.verify|verify} messages. + * @function encode + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {google.container.v1.IDisruptionEvent} message DisruptionEvent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DisruptionEvent.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.disruptionType != null && Object.hasOwnProperty.call(message, "disruptionType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.disruptionType); + if (message.pdbBlockedNode != null && Object.hasOwnProperty.call(message, "pdbBlockedNode")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.pdbBlockedNode); + if (message.pdbBlockedPod != null && message.pdbBlockedPod.length) + for (var i = 0; i < message.pdbBlockedPod.length; ++i) + $root.google.container.v1.DisruptionEvent.PdbBlockedPod.encode(message.pdbBlockedPod[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.pdbViolationTimeout != null && Object.hasOwnProperty.call(message, "pdbViolationTimeout")) + $root.google.protobuf.Duration.encode(message.pdbViolationTimeout, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DisruptionEvent message, length delimited. Does not implicitly {@link google.container.v1.DisruptionEvent.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {google.container.v1.IDisruptionEvent} message DisruptionEvent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DisruptionEvent.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DisruptionEvent message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.DisruptionEvent} DisruptionEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DisruptionEvent.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.DisruptionEvent(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.disruptionType = reader.int32(); + break; + } + case 2: { + message.pdbBlockedNode = reader.string(); + break; + } + case 3: { + if (!(message.pdbBlockedPod && message.pdbBlockedPod.length)) + message.pdbBlockedPod = []; + message.pdbBlockedPod.push($root.google.container.v1.DisruptionEvent.PdbBlockedPod.decode(reader, reader.uint32())); + break; + } + case 4: { + message.pdbViolationTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DisruptionEvent message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.DisruptionEvent} DisruptionEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DisruptionEvent.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DisruptionEvent message. + * @function verify + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DisruptionEvent.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.disruptionType != null && message.hasOwnProperty("disruptionType")) + switch (message.disruptionType) { + default: + return "disruptionType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.pdbBlockedNode != null && message.hasOwnProperty("pdbBlockedNode")) + if (!$util.isString(message.pdbBlockedNode)) + return "pdbBlockedNode: string expected"; + if (message.pdbBlockedPod != null && message.hasOwnProperty("pdbBlockedPod")) { + if (!Array.isArray(message.pdbBlockedPod)) + return "pdbBlockedPod: array expected"; + for (var i = 0; i < message.pdbBlockedPod.length; ++i) { + var error = $root.google.container.v1.DisruptionEvent.PdbBlockedPod.verify(message.pdbBlockedPod[i]); + if (error) + return "pdbBlockedPod." + error; + } + } + if (message.pdbViolationTimeout != null && message.hasOwnProperty("pdbViolationTimeout")) { + properties._pdbViolationTimeout = 1; + { + var error = $root.google.protobuf.Duration.verify(message.pdbViolationTimeout); + if (error) + return "pdbViolationTimeout." + error; + } + } + return null; + }; + + /** + * Creates a DisruptionEvent message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.DisruptionEvent} DisruptionEvent + */ + DisruptionEvent.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.DisruptionEvent) + return object; + var message = new $root.google.container.v1.DisruptionEvent(); + switch (object.disruptionType) { + default: + if (typeof object.disruptionType === "number") { + message.disruptionType = object.disruptionType; + break; + } + break; + case "DISRUPTION_TYPE_UNSPECIFIED": + case 0: + message.disruptionType = 0; + break; + case "POD_NOT_ENOUGH_PDB": + case 1: + message.disruptionType = 1; + break; + case "POD_PDB_VIOLATION": + case 2: + message.disruptionType = 2; + break; + } + if (object.pdbBlockedNode != null) + message.pdbBlockedNode = String(object.pdbBlockedNode); + if (object.pdbBlockedPod) { + if (!Array.isArray(object.pdbBlockedPod)) + throw TypeError(".google.container.v1.DisruptionEvent.pdbBlockedPod: array expected"); + message.pdbBlockedPod = []; + for (var i = 0; i < object.pdbBlockedPod.length; ++i) { + if (typeof object.pdbBlockedPod[i] !== "object") + throw TypeError(".google.container.v1.DisruptionEvent.pdbBlockedPod: object expected"); + message.pdbBlockedPod[i] = $root.google.container.v1.DisruptionEvent.PdbBlockedPod.fromObject(object.pdbBlockedPod[i]); + } + } + if (object.pdbViolationTimeout != null) { + if (typeof object.pdbViolationTimeout !== "object") + throw TypeError(".google.container.v1.DisruptionEvent.pdbViolationTimeout: object expected"); + message.pdbViolationTimeout = $root.google.protobuf.Duration.fromObject(object.pdbViolationTimeout); + } + return message; + }; + + /** + * Creates a plain object from a DisruptionEvent message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {google.container.v1.DisruptionEvent} message DisruptionEvent + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DisruptionEvent.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.pdbBlockedPod = []; + if (options.defaults) { + object.disruptionType = options.enums === String ? "DISRUPTION_TYPE_UNSPECIFIED" : 0; + object.pdbBlockedNode = ""; + } + if (message.disruptionType != null && message.hasOwnProperty("disruptionType")) + object.disruptionType = options.enums === String ? $root.google.container.v1.DisruptionEvent.DisruptionType[message.disruptionType] === undefined ? message.disruptionType : $root.google.container.v1.DisruptionEvent.DisruptionType[message.disruptionType] : message.disruptionType; + if (message.pdbBlockedNode != null && message.hasOwnProperty("pdbBlockedNode")) + object.pdbBlockedNode = message.pdbBlockedNode; + if (message.pdbBlockedPod && message.pdbBlockedPod.length) { + object.pdbBlockedPod = []; + for (var j = 0; j < message.pdbBlockedPod.length; ++j) + object.pdbBlockedPod[j] = $root.google.container.v1.DisruptionEvent.PdbBlockedPod.toObject(message.pdbBlockedPod[j], options); + } + if (message.pdbViolationTimeout != null && message.hasOwnProperty("pdbViolationTimeout")) { + object.pdbViolationTimeout = $root.google.protobuf.Duration.toObject(message.pdbViolationTimeout, options); + if (options.oneofs) + object._pdbViolationTimeout = "pdbViolationTimeout"; + } + return object; + }; + + /** + * Converts this DisruptionEvent to JSON. + * @function toJSON + * @memberof google.container.v1.DisruptionEvent + * @instance + * @returns {Object.} JSON object + */ + DisruptionEvent.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DisruptionEvent + * @function getTypeUrl + * @memberof google.container.v1.DisruptionEvent + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DisruptionEvent.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.DisruptionEvent"; + }; + + /** + * DisruptionType enum. + * @name google.container.v1.DisruptionEvent.DisruptionType + * @enum {number} + * @property {number} DISRUPTION_TYPE_UNSPECIFIED=0 DISRUPTION_TYPE_UNSPECIFIED value + * @property {number} POD_NOT_ENOUGH_PDB=1 POD_NOT_ENOUGH_PDB value + * @property {number} POD_PDB_VIOLATION=2 POD_PDB_VIOLATION value + */ + DisruptionEvent.DisruptionType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "DISRUPTION_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "POD_NOT_ENOUGH_PDB"] = 1; + values[valuesById[2] = "POD_PDB_VIOLATION"] = 2; + return values; + })(); + + DisruptionEvent.PdbBlockedPod = (function() { + + /** + * Properties of a PdbBlockedPod. + * @memberof google.container.v1.DisruptionEvent + * @interface IPdbBlockedPod + * @property {string|null} [namespace] PdbBlockedPod namespace + * @property {string|null} [name] PdbBlockedPod name + */ + + /** + * Constructs a new PdbBlockedPod. + * @memberof google.container.v1.DisruptionEvent + * @classdesc Represents a PdbBlockedPod. + * @implements IPdbBlockedPod + * @constructor + * @param {google.container.v1.DisruptionEvent.IPdbBlockedPod=} [properties] Properties to set + */ + function PdbBlockedPod(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PdbBlockedPod namespace. + * @member {string} namespace + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @instance + */ + PdbBlockedPod.prototype.namespace = ""; + + /** + * PdbBlockedPod name. + * @member {string} name + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @instance + */ + PdbBlockedPod.prototype.name = ""; + + /** + * Creates a new PdbBlockedPod instance using the specified properties. + * @function create + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {google.container.v1.DisruptionEvent.IPdbBlockedPod=} [properties] Properties to set + * @returns {google.container.v1.DisruptionEvent.PdbBlockedPod} PdbBlockedPod instance + */ + PdbBlockedPod.create = function create(properties) { + return new PdbBlockedPod(properties); + }; + + /** + * Encodes the specified PdbBlockedPod message. Does not implicitly {@link google.container.v1.DisruptionEvent.PdbBlockedPod.verify|verify} messages. + * @function encode + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {google.container.v1.DisruptionEvent.IPdbBlockedPod} message PdbBlockedPod message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PdbBlockedPod.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.namespace != null && Object.hasOwnProperty.call(message, "namespace")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.namespace); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.name); + return writer; + }; + + /** + * Encodes the specified PdbBlockedPod message, length delimited. Does not implicitly {@link google.container.v1.DisruptionEvent.PdbBlockedPod.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {google.container.v1.DisruptionEvent.IPdbBlockedPod} message PdbBlockedPod message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PdbBlockedPod.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PdbBlockedPod message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.DisruptionEvent.PdbBlockedPod} PdbBlockedPod + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PdbBlockedPod.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.DisruptionEvent.PdbBlockedPod(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.namespace = reader.string(); + break; + } + case 2: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PdbBlockedPod message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.DisruptionEvent.PdbBlockedPod} PdbBlockedPod + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PdbBlockedPod.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PdbBlockedPod message. + * @function verify + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PdbBlockedPod.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.namespace != null && message.hasOwnProperty("namespace")) + if (!$util.isString(message.namespace)) + return "namespace: string expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a PdbBlockedPod message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.DisruptionEvent.PdbBlockedPod} PdbBlockedPod + */ + PdbBlockedPod.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.DisruptionEvent.PdbBlockedPod) + return object; + var message = new $root.google.container.v1.DisruptionEvent.PdbBlockedPod(); + if (object.namespace != null) + message.namespace = String(object.namespace); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a PdbBlockedPod message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {google.container.v1.DisruptionEvent.PdbBlockedPod} message PdbBlockedPod + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PdbBlockedPod.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.namespace = ""; + object.name = ""; + } + if (message.namespace != null && message.hasOwnProperty("namespace")) + object.namespace = message.namespace; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this PdbBlockedPod to JSON. + * @function toJSON + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @instance + * @returns {Object.} JSON object + */ + PdbBlockedPod.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PdbBlockedPod + * @function getTypeUrl + * @memberof google.container.v1.DisruptionEvent.PdbBlockedPod + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PdbBlockedPod.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.DisruptionEvent.PdbBlockedPod"; + }; + + return PdbBlockedPod; + })(); + + return DisruptionEvent; + })(); + v1.UpgradeAvailableEvent = (function() { /** @@ -65549,12 +70206,14 @@ * @property {number} NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED=0 NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED value * @property {number} BLUE_GREEN=2 BLUE_GREEN value * @property {number} SURGE=3 SURGE value + * @property {number} SHORT_LIVED=5 SHORT_LIVED value */ v1.NodePoolUpdateStrategy = (function() { var valuesById = {}, values = Object.create(valuesById); values[valuesById[0] = "NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED"] = 0; values[valuesById[2] = "BLUE_GREEN"] = 2; values[valuesById[3] = "SURGE"] = 3; + values[valuesById[5] = "SHORT_LIVED"] = 5; return values; })(); @@ -72347,6 +77006,264 @@ return NetworkTierConfig; })(); + v1.ManagedOpenTelemetryConfig = (function() { + + /** + * Properties of a ManagedOpenTelemetryConfig. + * @memberof google.container.v1 + * @interface IManagedOpenTelemetryConfig + * @property {google.container.v1.ManagedOpenTelemetryConfig.Scope|null} [scope] ManagedOpenTelemetryConfig scope + */ + + /** + * Constructs a new ManagedOpenTelemetryConfig. + * @memberof google.container.v1 + * @classdesc Represents a ManagedOpenTelemetryConfig. + * @implements IManagedOpenTelemetryConfig + * @constructor + * @param {google.container.v1.IManagedOpenTelemetryConfig=} [properties] Properties to set + */ + function ManagedOpenTelemetryConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ManagedOpenTelemetryConfig scope. + * @member {google.container.v1.ManagedOpenTelemetryConfig.Scope|null|undefined} scope + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @instance + */ + ManagedOpenTelemetryConfig.prototype.scope = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ManagedOpenTelemetryConfig.prototype, "_scope", { + get: $util.oneOfGetter($oneOfFields = ["scope"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ManagedOpenTelemetryConfig instance using the specified properties. + * @function create + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {google.container.v1.IManagedOpenTelemetryConfig=} [properties] Properties to set + * @returns {google.container.v1.ManagedOpenTelemetryConfig} ManagedOpenTelemetryConfig instance + */ + ManagedOpenTelemetryConfig.create = function create(properties) { + return new ManagedOpenTelemetryConfig(properties); + }; + + /** + * Encodes the specified ManagedOpenTelemetryConfig message. Does not implicitly {@link google.container.v1.ManagedOpenTelemetryConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {google.container.v1.IManagedOpenTelemetryConfig} message ManagedOpenTelemetryConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedOpenTelemetryConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.scope != null && Object.hasOwnProperty.call(message, "scope")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.scope); + return writer; + }; + + /** + * Encodes the specified ManagedOpenTelemetryConfig message, length delimited. Does not implicitly {@link google.container.v1.ManagedOpenTelemetryConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {google.container.v1.IManagedOpenTelemetryConfig} message ManagedOpenTelemetryConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedOpenTelemetryConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1.ManagedOpenTelemetryConfig} ManagedOpenTelemetryConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedOpenTelemetryConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1.ManagedOpenTelemetryConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.scope = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1.ManagedOpenTelemetryConfig} ManagedOpenTelemetryConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedOpenTelemetryConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ManagedOpenTelemetryConfig message. + * @function verify + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ManagedOpenTelemetryConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.scope != null && message.hasOwnProperty("scope")) { + properties._scope = 1; + switch (message.scope) { + default: + return "scope: enum value expected"; + case 0: + case 1: + case 2: + break; + } + } + return null; + }; + + /** + * Creates a ManagedOpenTelemetryConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1.ManagedOpenTelemetryConfig} ManagedOpenTelemetryConfig + */ + ManagedOpenTelemetryConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1.ManagedOpenTelemetryConfig) + return object; + var message = new $root.google.container.v1.ManagedOpenTelemetryConfig(); + switch (object.scope) { + default: + if (typeof object.scope === "number") { + message.scope = object.scope; + break; + } + break; + case "SCOPE_UNSPECIFIED": + case 0: + message.scope = 0; + break; + case "NONE": + case 1: + message.scope = 1; + break; + case "COLLECTION_AND_INSTRUMENTATION_COMPONENTS": + case 2: + message.scope = 2; + break; + } + return message; + }; + + /** + * Creates a plain object from a ManagedOpenTelemetryConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {google.container.v1.ManagedOpenTelemetryConfig} message ManagedOpenTelemetryConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ManagedOpenTelemetryConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.scope != null && message.hasOwnProperty("scope")) { + object.scope = options.enums === String ? $root.google.container.v1.ManagedOpenTelemetryConfig.Scope[message.scope] === undefined ? message.scope : $root.google.container.v1.ManagedOpenTelemetryConfig.Scope[message.scope] : message.scope; + if (options.oneofs) + object._scope = "scope"; + } + return object; + }; + + /** + * Converts this ManagedOpenTelemetryConfig to JSON. + * @function toJSON + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @instance + * @returns {Object.} JSON object + */ + ManagedOpenTelemetryConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ManagedOpenTelemetryConfig + * @function getTypeUrl + * @memberof google.container.v1.ManagedOpenTelemetryConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ManagedOpenTelemetryConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1.ManagedOpenTelemetryConfig"; + }; + + /** + * Scope enum. + * @name google.container.v1.ManagedOpenTelemetryConfig.Scope + * @enum {number} + * @property {number} SCOPE_UNSPECIFIED=0 SCOPE_UNSPECIFIED value + * @property {number} NONE=1 NONE value + * @property {number} COLLECTION_AND_INSTRUMENTATION_COMPONENTS=2 COLLECTION_AND_INSTRUMENTATION_COMPONENTS value + */ + ManagedOpenTelemetryConfig.Scope = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SCOPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "NONE"] = 1; + values[valuesById[2] = "COLLECTION_AND_INSTRUMENTATION_COMPONENTS"] = 2; + return values; + })(); + + return ManagedOpenTelemetryConfig; + })(); + return v1; })(); @@ -73612,9 +78529,271 @@ * @variation 2 */ + /** + * Callback as used by {@link google.container.v1beta1.ClusterManager|completeControlPlaneUpgrade}. + * @memberof google.container.v1beta1.ClusterManager + * @typedef CompleteControlPlaneUpgradeCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.container.v1beta1.Operation} [response] Operation + */ + + /** + * Calls CompleteControlPlaneUpgrade. + * @function completeControlPlaneUpgrade + * @memberof google.container.v1beta1.ClusterManager + * @instance + * @param {google.container.v1beta1.ICompleteControlPlaneUpgradeRequest} request CompleteControlPlaneUpgradeRequest message or plain object + * @param {google.container.v1beta1.ClusterManager.CompleteControlPlaneUpgradeCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(ClusterManager.prototype.completeControlPlaneUpgrade = function completeControlPlaneUpgrade(request, callback) { + return this.rpcCall(completeControlPlaneUpgrade, $root.google.container.v1beta1.CompleteControlPlaneUpgradeRequest, $root.google.container.v1beta1.Operation, request, callback); + }, "name", { value: "CompleteControlPlaneUpgrade" }); + + /** + * Calls CompleteControlPlaneUpgrade. + * @function completeControlPlaneUpgrade + * @memberof google.container.v1beta1.ClusterManager + * @instance + * @param {google.container.v1beta1.ICompleteControlPlaneUpgradeRequest} request CompleteControlPlaneUpgradeRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return ClusterManager; })(); + v1beta1.CompleteControlPlaneUpgradeRequest = (function() { + + /** + * Properties of a CompleteControlPlaneUpgradeRequest. + * @memberof google.container.v1beta1 + * @interface ICompleteControlPlaneUpgradeRequest + * @property {string|null} [name] CompleteControlPlaneUpgradeRequest name + * @property {string|null} [version] CompleteControlPlaneUpgradeRequest version + */ + + /** + * Constructs a new CompleteControlPlaneUpgradeRequest. + * @memberof google.container.v1beta1 + * @classdesc Represents a CompleteControlPlaneUpgradeRequest. + * @implements ICompleteControlPlaneUpgradeRequest + * @constructor + * @param {google.container.v1beta1.ICompleteControlPlaneUpgradeRequest=} [properties] Properties to set + */ + function CompleteControlPlaneUpgradeRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CompleteControlPlaneUpgradeRequest name. + * @member {string} name + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @instance + */ + CompleteControlPlaneUpgradeRequest.prototype.name = ""; + + /** + * CompleteControlPlaneUpgradeRequest version. + * @member {string} version + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @instance + */ + CompleteControlPlaneUpgradeRequest.prototype.version = ""; + + /** + * Creates a new CompleteControlPlaneUpgradeRequest instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {google.container.v1beta1.ICompleteControlPlaneUpgradeRequest=} [properties] Properties to set + * @returns {google.container.v1beta1.CompleteControlPlaneUpgradeRequest} CompleteControlPlaneUpgradeRequest instance + */ + CompleteControlPlaneUpgradeRequest.create = function create(properties) { + return new CompleteControlPlaneUpgradeRequest(properties); + }; + + /** + * Encodes the specified CompleteControlPlaneUpgradeRequest message. Does not implicitly {@link google.container.v1beta1.CompleteControlPlaneUpgradeRequest.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {google.container.v1beta1.ICompleteControlPlaneUpgradeRequest} message CompleteControlPlaneUpgradeRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CompleteControlPlaneUpgradeRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.version); + return writer; + }; + + /** + * Encodes the specified CompleteControlPlaneUpgradeRequest message, length delimited. Does not implicitly {@link google.container.v1beta1.CompleteControlPlaneUpgradeRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {google.container.v1beta1.ICompleteControlPlaneUpgradeRequest} message CompleteControlPlaneUpgradeRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CompleteControlPlaneUpgradeRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CompleteControlPlaneUpgradeRequest message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.CompleteControlPlaneUpgradeRequest} CompleteControlPlaneUpgradeRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CompleteControlPlaneUpgradeRequest.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.CompleteControlPlaneUpgradeRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.version = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CompleteControlPlaneUpgradeRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.CompleteControlPlaneUpgradeRequest} CompleteControlPlaneUpgradeRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CompleteControlPlaneUpgradeRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CompleteControlPlaneUpgradeRequest message. + * @function verify + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CompleteControlPlaneUpgradeRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.version != null && message.hasOwnProperty("version")) + if (!$util.isString(message.version)) + return "version: string expected"; + return null; + }; + + /** + * Creates a CompleteControlPlaneUpgradeRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.CompleteControlPlaneUpgradeRequest} CompleteControlPlaneUpgradeRequest + */ + CompleteControlPlaneUpgradeRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.CompleteControlPlaneUpgradeRequest) + return object; + var message = new $root.google.container.v1beta1.CompleteControlPlaneUpgradeRequest(); + if (object.name != null) + message.name = String(object.name); + if (object.version != null) + message.version = String(object.version); + return message; + }; + + /** + * Creates a plain object from a CompleteControlPlaneUpgradeRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {google.container.v1beta1.CompleteControlPlaneUpgradeRequest} message CompleteControlPlaneUpgradeRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CompleteControlPlaneUpgradeRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.version = ""; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.version != null && message.hasOwnProperty("version")) + object.version = message.version; + return object; + }; + + /** + * Converts this CompleteControlPlaneUpgradeRequest to JSON. + * @function toJSON + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @instance + * @returns {Object.} JSON object + */ + CompleteControlPlaneUpgradeRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CompleteControlPlaneUpgradeRequest + * @function getTypeUrl + * @memberof google.container.v1beta1.CompleteControlPlaneUpgradeRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CompleteControlPlaneUpgradeRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.CompleteControlPlaneUpgradeRequest"; + }; + + return CompleteControlPlaneUpgradeRequest; + })(); + v1beta1.LinuxNodeConfig = (function() { /** @@ -76283,6 +81462,8 @@ * @property {number|null} [evictionMaxPodGracePeriodSeconds] NodeKubeletConfig evictionMaxPodGracePeriodSeconds * @property {number|null} [maxParallelImagePulls] NodeKubeletConfig maxParallelImagePulls * @property {boolean|null} [singleProcessOomKill] NodeKubeletConfig singleProcessOomKill + * @property {number|null} [shutdownGracePeriodSeconds] NodeKubeletConfig shutdownGracePeriodSeconds + * @property {number|null} [shutdownGracePeriodCriticalPodsSeconds] NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds */ /** @@ -76461,6 +81642,22 @@ */ NodeKubeletConfig.prototype.singleProcessOomKill = null; + /** + * NodeKubeletConfig shutdownGracePeriodSeconds. + * @member {number|null|undefined} shutdownGracePeriodSeconds + * @memberof google.container.v1beta1.NodeKubeletConfig + * @instance + */ + NodeKubeletConfig.prototype.shutdownGracePeriodSeconds = null; + + /** + * NodeKubeletConfig shutdownGracePeriodCriticalPodsSeconds. + * @member {number|null|undefined} shutdownGracePeriodCriticalPodsSeconds + * @memberof google.container.v1beta1.NodeKubeletConfig + * @instance + */ + NodeKubeletConfig.prototype.shutdownGracePeriodCriticalPodsSeconds = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -76476,6 +81673,18 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(NodeKubeletConfig.prototype, "_shutdownGracePeriodSeconds", { + get: $util.oneOfGetter($oneOfFields = ["shutdownGracePeriodSeconds"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(NodeKubeletConfig.prototype, "_shutdownGracePeriodCriticalPodsSeconds", { + get: $util.oneOfGetter($oneOfFields = ["shutdownGracePeriodCriticalPodsSeconds"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new NodeKubeletConfig instance using the specified properties. * @function create @@ -76541,6 +81750,10 @@ writer.uint32(/* id 21, wireType 0 =*/168).int32(message.maxParallelImagePulls); if (message.singleProcessOomKill != null && Object.hasOwnProperty.call(message, "singleProcessOomKill")) writer.uint32(/* id 22, wireType 0 =*/176).bool(message.singleProcessOomKill); + if (message.shutdownGracePeriodSeconds != null && Object.hasOwnProperty.call(message, "shutdownGracePeriodSeconds")) + writer.uint32(/* id 26, wireType 0 =*/208).int32(message.shutdownGracePeriodSeconds); + if (message.shutdownGracePeriodCriticalPodsSeconds != null && Object.hasOwnProperty.call(message, "shutdownGracePeriodCriticalPodsSeconds")) + writer.uint32(/* id 27, wireType 0 =*/216).int32(message.shutdownGracePeriodCriticalPodsSeconds); return writer; }; @@ -76659,6 +81872,14 @@ message.singleProcessOomKill = reader.bool(); break; } + case 26: { + message.shutdownGracePeriodSeconds = reader.int32(); + break; + } + case 27: { + message.shutdownGracePeriodCriticalPodsSeconds = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -76775,6 +81996,16 @@ if (typeof message.singleProcessOomKill !== "boolean") return "singleProcessOomKill: boolean expected"; } + if (message.shutdownGracePeriodSeconds != null && message.hasOwnProperty("shutdownGracePeriodSeconds")) { + properties._shutdownGracePeriodSeconds = 1; + if (!$util.isInteger(message.shutdownGracePeriodSeconds)) + return "shutdownGracePeriodSeconds: integer expected"; + } + if (message.shutdownGracePeriodCriticalPodsSeconds != null && message.hasOwnProperty("shutdownGracePeriodCriticalPodsSeconds")) { + properties._shutdownGracePeriodCriticalPodsSeconds = 1; + if (!$util.isInteger(message.shutdownGracePeriodCriticalPodsSeconds)) + return "shutdownGracePeriodCriticalPodsSeconds: integer expected"; + } return null; }; @@ -76860,6 +82091,10 @@ message.maxParallelImagePulls = object.maxParallelImagePulls | 0; if (object.singleProcessOomKill != null) message.singleProcessOomKill = Boolean(object.singleProcessOomKill); + if (object.shutdownGracePeriodSeconds != null) + message.shutdownGracePeriodSeconds = object.shutdownGracePeriodSeconds | 0; + if (object.shutdownGracePeriodCriticalPodsSeconds != null) + message.shutdownGracePeriodCriticalPodsSeconds = object.shutdownGracePeriodCriticalPodsSeconds | 0; return message; }; @@ -76953,6 +82188,16 @@ if (options.oneofs) object._singleProcessOomKill = "singleProcessOomKill"; } + if (message.shutdownGracePeriodSeconds != null && message.hasOwnProperty("shutdownGracePeriodSeconds")) { + object.shutdownGracePeriodSeconds = message.shutdownGracePeriodSeconds; + if (options.oneofs) + object._shutdownGracePeriodSeconds = "shutdownGracePeriodSeconds"; + } + if (message.shutdownGracePeriodCriticalPodsSeconds != null && message.hasOwnProperty("shutdownGracePeriodCriticalPodsSeconds")) { + object.shutdownGracePeriodCriticalPodsSeconds = message.shutdownGracePeriodCriticalPodsSeconds; + if (options.oneofs) + object._shutdownGracePeriodCriticalPodsSeconds = "shutdownGracePeriodCriticalPodsSeconds"; + } return object; }; @@ -78430,11 +83675,13 @@ * @property {Array.|null} [secondaryBootDisks] NodeConfig secondaryBootDisks * @property {Array.|null} [storagePools] NodeConfig storagePools * @property {google.container.v1beta1.ISecondaryBootDiskUpdateStrategy|null} [secondaryBootDiskUpdateStrategy] NodeConfig secondaryBootDiskUpdateStrategy + * @property {google.container.v1beta1.IGPUDirectConfig|null} [gpuDirectConfig] NodeConfig gpuDirectConfig * @property {google.protobuf.IDuration|null} [maxRunDuration] NodeConfig maxRunDuration * @property {google.container.v1beta1.NodeConfig.LocalSsdEncryptionMode|null} [localSsdEncryptionMode] NodeConfig localSsdEncryptionMode * @property {google.container.v1beta1.NodeConfig.EffectiveCgroupMode|null} [effectiveCgroupMode] NodeConfig effectiveCgroupMode * @property {boolean|null} [flexStart] NodeConfig flexStart * @property {google.container.v1beta1.IBootDisk|null} [bootDisk] NodeConfig bootDisk + * @property {google.protobuf.IDuration|null} [consolidationDelay] NodeConfig consolidationDelay */ /** @@ -78797,6 +84044,14 @@ */ NodeConfig.prototype.secondaryBootDiskUpdateStrategy = null; + /** + * NodeConfig gpuDirectConfig. + * @member {google.container.v1beta1.IGPUDirectConfig|null|undefined} gpuDirectConfig + * @memberof google.container.v1beta1.NodeConfig + * @instance + */ + NodeConfig.prototype.gpuDirectConfig = null; + /** * NodeConfig maxRunDuration. * @member {google.protobuf.IDuration|null|undefined} maxRunDuration @@ -78837,6 +84092,14 @@ */ NodeConfig.prototype.bootDisk = null; + /** + * NodeConfig consolidationDelay. + * @member {google.protobuf.IDuration|null|undefined} consolidationDelay + * @memberof google.container.v1beta1.NodeConfig + * @instance + */ + NodeConfig.prototype.consolidationDelay = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -78852,6 +84115,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(NodeConfig.prototype, "_gpuDirectConfig", { + get: $util.oneOfGetter($oneOfFields = ["gpuDirectConfig"]), + set: $util.oneOfSetter($oneOfFields) + }); + // Virtual OneOf for proto3 optional field Object.defineProperty(NodeConfig.prototype, "_localSsdEncryptionMode", { get: $util.oneOfGetter($oneOfFields = ["localSsdEncryptionMode"]), @@ -78981,6 +84250,8 @@ writer.uint32(/* id 49, wireType 2 =*/394).string(message.storagePools[i]); if (message.secondaryBootDiskUpdateStrategy != null && Object.hasOwnProperty.call(message, "secondaryBootDiskUpdateStrategy")) $root.google.container.v1beta1.SecondaryBootDiskUpdateStrategy.encode(message.secondaryBootDiskUpdateStrategy, writer.uint32(/* id 50, wireType 2 =*/402).fork()).ldelim(); + if (message.gpuDirectConfig != null && Object.hasOwnProperty.call(message, "gpuDirectConfig")) + $root.google.container.v1beta1.GPUDirectConfig.encode(message.gpuDirectConfig, writer.uint32(/* id 51, wireType 2 =*/410).fork()).ldelim(); if (message.maxRunDuration != null && Object.hasOwnProperty.call(message, "maxRunDuration")) $root.google.protobuf.Duration.encode(message.maxRunDuration, writer.uint32(/* id 53, wireType 2 =*/426).fork()).ldelim(); if (message.localSsdEncryptionMode != null && Object.hasOwnProperty.call(message, "localSsdEncryptionMode")) @@ -78991,6 +84262,8 @@ writer.uint32(/* id 56, wireType 0 =*/448).bool(message.flexStart); if (message.bootDisk != null && Object.hasOwnProperty.call(message, "bootDisk")) $root.google.container.v1beta1.BootDisk.encode(message.bootDisk, writer.uint32(/* id 57, wireType 2 =*/458).fork()).ldelim(); + if (message.consolidationDelay != null && Object.hasOwnProperty.call(message, "consolidationDelay")) + $root.google.protobuf.Duration.encode(message.consolidationDelay, writer.uint32(/* id 60, wireType 2 =*/482).fork()).ldelim(); return writer; }; @@ -79264,6 +84537,10 @@ message.secondaryBootDiskUpdateStrategy = $root.google.container.v1beta1.SecondaryBootDiskUpdateStrategy.decode(reader, reader.uint32()); break; } + case 51: { + message.gpuDirectConfig = $root.google.container.v1beta1.GPUDirectConfig.decode(reader, reader.uint32()); + break; + } case 53: { message.maxRunDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); break; @@ -79284,6 +84561,10 @@ message.bootDisk = $root.google.container.v1beta1.BootDisk.decode(reader, reader.uint32()); break; } + case 60: { + message.consolidationDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -79539,6 +84820,14 @@ return "secondaryBootDiskUpdateStrategy." + error; } } + if (message.gpuDirectConfig != null && message.hasOwnProperty("gpuDirectConfig")) { + properties._gpuDirectConfig = 1; + { + var error = $root.google.container.v1beta1.GPUDirectConfig.verify(message.gpuDirectConfig); + if (error) + return "gpuDirectConfig." + error; + } + } if (message.maxRunDuration != null && message.hasOwnProperty("maxRunDuration")) { var error = $root.google.protobuf.Duration.verify(message.maxRunDuration); if (error) @@ -79574,6 +84863,11 @@ if (error) return "bootDisk." + error; } + if (message.consolidationDelay != null && message.hasOwnProperty("consolidationDelay")) { + var error = $root.google.protobuf.Duration.verify(message.consolidationDelay); + if (error) + return "consolidationDelay." + error; + } return null; }; @@ -79790,6 +85084,11 @@ throw TypeError(".google.container.v1beta1.NodeConfig.secondaryBootDiskUpdateStrategy: object expected"); message.secondaryBootDiskUpdateStrategy = $root.google.container.v1beta1.SecondaryBootDiskUpdateStrategy.fromObject(object.secondaryBootDiskUpdateStrategy); } + if (object.gpuDirectConfig != null) { + if (typeof object.gpuDirectConfig !== "object") + throw TypeError(".google.container.v1beta1.NodeConfig.gpuDirectConfig: object expected"); + message.gpuDirectConfig = $root.google.container.v1beta1.GPUDirectConfig.fromObject(object.gpuDirectConfig); + } if (object.maxRunDuration != null) { if (typeof object.maxRunDuration !== "object") throw TypeError(".google.container.v1beta1.NodeConfig.maxRunDuration: object expected"); @@ -79842,6 +85141,11 @@ throw TypeError(".google.container.v1beta1.NodeConfig.bootDisk: object expected"); message.bootDisk = $root.google.container.v1beta1.BootDisk.fromObject(object.bootDisk); } + if (object.consolidationDelay != null) { + if (typeof object.consolidationDelay !== "object") + throw TypeError(".google.container.v1beta1.NodeConfig.consolidationDelay: object expected"); + message.consolidationDelay = $root.google.protobuf.Duration.fromObject(object.consolidationDelay); + } return message; }; @@ -79906,6 +85210,7 @@ object.maxRunDuration = null; object.effectiveCgroupMode = options.enums === String ? "EFFECTIVE_CGROUP_MODE_UNSPECIFIED" : 0; object.bootDisk = null; + object.consolidationDelay = null; } if (message.machineType != null && message.hasOwnProperty("machineType")) object.machineType = message.machineType; @@ -80025,6 +85330,11 @@ if (options.oneofs) object._secondaryBootDiskUpdateStrategy = "secondaryBootDiskUpdateStrategy"; } + if (message.gpuDirectConfig != null && message.hasOwnProperty("gpuDirectConfig")) { + object.gpuDirectConfig = $root.google.container.v1beta1.GPUDirectConfig.toObject(message.gpuDirectConfig, options); + if (options.oneofs) + object._gpuDirectConfig = "gpuDirectConfig"; + } if (message.maxRunDuration != null && message.hasOwnProperty("maxRunDuration")) object.maxRunDuration = $root.google.protobuf.Duration.toObject(message.maxRunDuration, options); if (message.localSsdEncryptionMode != null && message.hasOwnProperty("localSsdEncryptionMode")) { @@ -80041,6 +85351,8 @@ } if (message.bootDisk != null && message.hasOwnProperty("bootDisk")) object.bootDisk = $root.google.container.v1beta1.BootDisk.toObject(message.bootDisk, options); + if (message.consolidationDelay != null && message.hasOwnProperty("consolidationDelay")) + object.consolidationDelay = $root.google.protobuf.Duration.toObject(message.consolidationDelay, options); return object; }; @@ -84024,6 +89336,7 @@ * @interface IContainerdConfig * @property {google.container.v1beta1.ContainerdConfig.IPrivateRegistryAccessConfig|null} [privateRegistryAccessConfig] ContainerdConfig privateRegistryAccessConfig * @property {google.container.v1beta1.ContainerdConfig.IWritableCgroups|null} [writableCgroups] ContainerdConfig writableCgroups + * @property {Array.|null} [registryHosts] ContainerdConfig registryHosts */ /** @@ -84035,6 +89348,7 @@ * @param {google.container.v1beta1.IContainerdConfig=} [properties] Properties to set */ function ContainerdConfig(properties) { + this.registryHosts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -84057,6 +89371,14 @@ */ ContainerdConfig.prototype.writableCgroups = null; + /** + * ContainerdConfig registryHosts. + * @member {Array.} registryHosts + * @memberof google.container.v1beta1.ContainerdConfig + * @instance + */ + ContainerdConfig.prototype.registryHosts = $util.emptyArray; + /** * Creates a new ContainerdConfig instance using the specified properties. * @function create @@ -84085,6 +89407,9 @@ $root.google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.encode(message.privateRegistryAccessConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.writableCgroups != null && Object.hasOwnProperty.call(message, "writableCgroups")) $root.google.container.v1beta1.ContainerdConfig.WritableCgroups.encode(message.writableCgroups, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.registryHosts != null && message.registryHosts.length) + for (var i = 0; i < message.registryHosts.length; ++i) + $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.encode(message.registryHosts[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -84129,6 +89454,12 @@ message.writableCgroups = $root.google.container.v1beta1.ContainerdConfig.WritableCgroups.decode(reader, reader.uint32()); break; } + case 3: { + if (!(message.registryHosts && message.registryHosts.length)) + message.registryHosts = []; + message.registryHosts.push($root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -84174,6 +89505,15 @@ if (error) return "writableCgroups." + error; } + if (message.registryHosts != null && message.hasOwnProperty("registryHosts")) { + if (!Array.isArray(message.registryHosts)) + return "registryHosts: array expected"; + for (var i = 0; i < message.registryHosts.length; ++i) { + var error = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.verify(message.registryHosts[i]); + if (error) + return "registryHosts." + error; + } + } return null; }; @@ -84199,6 +89539,16 @@ throw TypeError(".google.container.v1beta1.ContainerdConfig.writableCgroups: object expected"); message.writableCgroups = $root.google.container.v1beta1.ContainerdConfig.WritableCgroups.fromObject(object.writableCgroups); } + if (object.registryHosts) { + if (!Array.isArray(object.registryHosts)) + throw TypeError(".google.container.v1beta1.ContainerdConfig.registryHosts: array expected"); + message.registryHosts = []; + for (var i = 0; i < object.registryHosts.length; ++i) { + if (typeof object.registryHosts[i] !== "object") + throw TypeError(".google.container.v1beta1.ContainerdConfig.registryHosts: object expected"); + message.registryHosts[i] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.fromObject(object.registryHosts[i]); + } + } return message; }; @@ -84215,6 +89565,8 @@ if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.registryHosts = []; if (options.defaults) { object.privateRegistryAccessConfig = null; object.writableCgroups = null; @@ -84223,6 +89575,11 @@ object.privateRegistryAccessConfig = $root.google.container.v1beta1.ContainerdConfig.PrivateRegistryAccessConfig.toObject(message.privateRegistryAccessConfig, options); if (message.writableCgroups != null && message.hasOwnProperty("writableCgroups")) object.writableCgroups = $root.google.container.v1beta1.ContainerdConfig.WritableCgroups.toObject(message.writableCgroups, options); + if (message.registryHosts && message.registryHosts.length) { + object.registryHosts = []; + for (var j = 0; j < message.registryHosts.length; ++j) + object.registryHosts[j] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.toObject(message.registryHosts[j], options); + } return object; }; @@ -85181,6 +90538,1448 @@ return WritableCgroups; })(); + ContainerdConfig.RegistryHostConfig = (function() { + + /** + * Properties of a RegistryHostConfig. + * @memberof google.container.v1beta1.ContainerdConfig + * @interface IRegistryHostConfig + * @property {string|null} [server] RegistryHostConfig server + * @property {Array.|null} [hosts] RegistryHostConfig hosts + */ + + /** + * Constructs a new RegistryHostConfig. + * @memberof google.container.v1beta1.ContainerdConfig + * @classdesc Represents a RegistryHostConfig. + * @implements IRegistryHostConfig + * @constructor + * @param {google.container.v1beta1.ContainerdConfig.IRegistryHostConfig=} [properties] Properties to set + */ + function RegistryHostConfig(properties) { + this.hosts = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RegistryHostConfig server. + * @member {string} server + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @instance + */ + RegistryHostConfig.prototype.server = ""; + + /** + * RegistryHostConfig hosts. + * @member {Array.} hosts + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @instance + */ + RegistryHostConfig.prototype.hosts = $util.emptyArray; + + /** + * Creates a new RegistryHostConfig instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.IRegistryHostConfig=} [properties] Properties to set + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig} RegistryHostConfig instance + */ + RegistryHostConfig.create = function create(properties) { + return new RegistryHostConfig(properties); + }; + + /** + * Encodes the specified RegistryHostConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.IRegistryHostConfig} message RegistryHostConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RegistryHostConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.server != null && Object.hasOwnProperty.call(message, "server")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.server); + if (message.hosts != null && message.hosts.length) + for (var i = 0; i < message.hosts.length; ++i) + $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.encode(message.hosts[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified RegistryHostConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.IRegistryHostConfig} message RegistryHostConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RegistryHostConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RegistryHostConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig} RegistryHostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RegistryHostConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.server = reader.string(); + break; + } + case 2: { + if (!(message.hosts && message.hosts.length)) + message.hosts = []; + message.hosts.push($root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RegistryHostConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig} RegistryHostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RegistryHostConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RegistryHostConfig message. + * @function verify + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RegistryHostConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.server != null && message.hasOwnProperty("server")) + if (!$util.isString(message.server)) + return "server: string expected"; + if (message.hosts != null && message.hasOwnProperty("hosts")) { + if (!Array.isArray(message.hosts)) + return "hosts: array expected"; + for (var i = 0; i < message.hosts.length; ++i) { + var error = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.verify(message.hosts[i]); + if (error) + return "hosts." + error; + } + } + return null; + }; + + /** + * Creates a RegistryHostConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig} RegistryHostConfig + */ + RegistryHostConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig) + return object; + var message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig(); + if (object.server != null) + message.server = String(object.server); + if (object.hosts) { + if (!Array.isArray(object.hosts)) + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.hosts: array expected"); + message.hosts = []; + for (var i = 0; i < object.hosts.length; ++i) { + if (typeof object.hosts[i] !== "object") + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.hosts: object expected"); + message.hosts[i] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.fromObject(object.hosts[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a RegistryHostConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig} message RegistryHostConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RegistryHostConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.hosts = []; + if (options.defaults) + object.server = ""; + if (message.server != null && message.hasOwnProperty("server")) + object.server = message.server; + if (message.hosts && message.hosts.length) { + object.hosts = []; + for (var j = 0; j < message.hosts.length; ++j) + object.hosts[j] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.toObject(message.hosts[j], options); + } + return object; + }; + + /** + * Converts this RegistryHostConfig to JSON. + * @function toJSON + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @instance + * @returns {Object.} JSON object + */ + RegistryHostConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RegistryHostConfig + * @function getTypeUrl + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RegistryHostConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.ContainerdConfig.RegistryHostConfig"; + }; + + RegistryHostConfig.CertificateConfig = (function() { + + /** + * Properties of a CertificateConfig. + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @interface ICertificateConfig + * @property {string|null} [gcpSecretManagerSecretUri] CertificateConfig gcpSecretManagerSecretUri + */ + + /** + * Constructs a new CertificateConfig. + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @classdesc Represents a CertificateConfig. + * @implements ICertificateConfig + * @constructor + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig=} [properties] Properties to set + */ + function CertificateConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CertificateConfig gcpSecretManagerSecretUri. + * @member {string|null|undefined} gcpSecretManagerSecretUri + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @instance + */ + CertificateConfig.prototype.gcpSecretManagerSecretUri = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * CertificateConfig certificate. + * @member {"gcpSecretManagerSecretUri"|undefined} certificate + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @instance + */ + Object.defineProperty(CertificateConfig.prototype, "certificate", { + get: $util.oneOfGetter($oneOfFields = ["gcpSecretManagerSecretUri"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new CertificateConfig instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig=} [properties] Properties to set + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig} CertificateConfig instance + */ + CertificateConfig.create = function create(properties) { + return new CertificateConfig(properties); + }; + + /** + * Encodes the specified CertificateConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig} message CertificateConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.gcpSecretManagerSecretUri != null && Object.hasOwnProperty.call(message, "gcpSecretManagerSecretUri")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.gcpSecretManagerSecretUri); + return writer; + }; + + /** + * Encodes the specified CertificateConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig} message CertificateConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CertificateConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig} CertificateConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.gcpSecretManagerSecretUri = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CertificateConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig} CertificateConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CertificateConfig message. + * @function verify + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CertificateConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.gcpSecretManagerSecretUri != null && message.hasOwnProperty("gcpSecretManagerSecretUri")) { + properties.certificate = 1; + if (!$util.isString(message.gcpSecretManagerSecretUri)) + return "gcpSecretManagerSecretUri: string expected"; + } + return null; + }; + + /** + * Creates a CertificateConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig} CertificateConfig + */ + CertificateConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig) + return object; + var message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig(); + if (object.gcpSecretManagerSecretUri != null) + message.gcpSecretManagerSecretUri = String(object.gcpSecretManagerSecretUri); + return message; + }; + + /** + * Creates a plain object from a CertificateConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig} message CertificateConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CertificateConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.gcpSecretManagerSecretUri != null && message.hasOwnProperty("gcpSecretManagerSecretUri")) { + object.gcpSecretManagerSecretUri = message.gcpSecretManagerSecretUri; + if (options.oneofs) + object.certificate = "gcpSecretManagerSecretUri"; + } + return object; + }; + + /** + * Converts this CertificateConfig to JSON. + * @function toJSON + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @instance + * @returns {Object.} JSON object + */ + CertificateConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CertificateConfig + * @function getTypeUrl + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CertificateConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig"; + }; + + return CertificateConfig; + })(); + + RegistryHostConfig.CertificateConfigPair = (function() { + + /** + * Properties of a CertificateConfigPair. + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @interface ICertificateConfigPair + * @property {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null} [cert] CertificateConfigPair cert + * @property {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null} [key] CertificateConfigPair key + */ + + /** + * Constructs a new CertificateConfigPair. + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @classdesc Represents a CertificateConfigPair. + * @implements ICertificateConfigPair + * @constructor + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair=} [properties] Properties to set + */ + function CertificateConfigPair(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CertificateConfigPair cert. + * @member {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null|undefined} cert + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @instance + */ + CertificateConfigPair.prototype.cert = null; + + /** + * CertificateConfigPair key. + * @member {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfig|null|undefined} key + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @instance + */ + CertificateConfigPair.prototype.key = null; + + /** + * Creates a new CertificateConfigPair instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair=} [properties] Properties to set + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} CertificateConfigPair instance + */ + CertificateConfigPair.create = function create(properties) { + return new CertificateConfigPair(properties); + }; + + /** + * Encodes the specified CertificateConfigPair message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair} message CertificateConfigPair message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateConfigPair.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cert != null && Object.hasOwnProperty.call(message, "cert")) + $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.encode(message.cert, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.encode(message.key, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CertificateConfigPair message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.ICertificateConfigPair} message CertificateConfigPair message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CertificateConfigPair.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CertificateConfigPair message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} CertificateConfigPair + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateConfigPair.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.cert = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.decode(reader, reader.uint32()); + break; + } + case 2: { + message.key = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CertificateConfigPair message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} CertificateConfigPair + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CertificateConfigPair.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CertificateConfigPair message. + * @function verify + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CertificateConfigPair.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cert != null && message.hasOwnProperty("cert")) { + var error = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify(message.cert); + if (error) + return "cert." + error; + } + if (message.key != null && message.hasOwnProperty("key")) { + var error = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify(message.key); + if (error) + return "key." + error; + } + return null; + }; + + /** + * Creates a CertificateConfigPair message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} CertificateConfigPair + */ + CertificateConfigPair.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair) + return object; + var message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair(); + if (object.cert != null) { + if (typeof object.cert !== "object") + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.cert: object expected"); + message.cert = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.fromObject(object.cert); + } + if (object.key != null) { + if (typeof object.key !== "object") + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.key: object expected"); + message.key = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.fromObject(object.key); + } + return message; + }; + + /** + * Creates a plain object from a CertificateConfigPair message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair} message CertificateConfigPair + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CertificateConfigPair.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.cert = null; + object.key = null; + } + if (message.cert != null && message.hasOwnProperty("cert")) + object.cert = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.toObject(message.cert, options); + if (message.key != null && message.hasOwnProperty("key")) + object.key = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.toObject(message.key, options); + return object; + }; + + /** + * Converts this CertificateConfigPair to JSON. + * @function toJSON + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @instance + * @returns {Object.} JSON object + */ + CertificateConfigPair.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CertificateConfigPair + * @function getTypeUrl + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CertificateConfigPair.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair"; + }; + + return CertificateConfigPair; + })(); + + RegistryHostConfig.RegistryHeader = (function() { + + /** + * Properties of a RegistryHeader. + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @interface IRegistryHeader + * @property {string|null} [key] RegistryHeader key + * @property {Array.|null} [value] RegistryHeader value + */ + + /** + * Constructs a new RegistryHeader. + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @classdesc Represents a RegistryHeader. + * @implements IRegistryHeader + * @constructor + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader=} [properties] Properties to set + */ + function RegistryHeader(properties) { + this.value = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RegistryHeader key. + * @member {string} key + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @instance + */ + RegistryHeader.prototype.key = ""; + + /** + * RegistryHeader value. + * @member {Array.} value + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @instance + */ + RegistryHeader.prototype.value = $util.emptyArray; + + /** + * Creates a new RegistryHeader instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader=} [properties] Properties to set + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader} RegistryHeader instance + */ + RegistryHeader.create = function create(properties) { + return new RegistryHeader(properties); + }; + + /** + * Encodes the specified RegistryHeader message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader} message RegistryHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RegistryHeader.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.key); + if (message.value != null && message.value.length) + for (var i = 0; i < message.value.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.value[i]); + return writer; + }; + + /** + * Encodes the specified RegistryHeader message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IRegistryHeader} message RegistryHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RegistryHeader.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RegistryHeader message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader} RegistryHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RegistryHeader.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.key = reader.string(); + break; + } + case 2: { + if (!(message.value && message.value.length)) + message.value = []; + message.value.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RegistryHeader message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader} RegistryHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RegistryHeader.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RegistryHeader message. + * @function verify + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RegistryHeader.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.key != null && message.hasOwnProperty("key")) + if (!$util.isString(message.key)) + return "key: string expected"; + if (message.value != null && message.hasOwnProperty("value")) { + if (!Array.isArray(message.value)) + return "value: array expected"; + for (var i = 0; i < message.value.length; ++i) + if (!$util.isString(message.value[i])) + return "value: string[] expected"; + } + return null; + }; + + /** + * Creates a RegistryHeader message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader} RegistryHeader + */ + RegistryHeader.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader) + return object; + var message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader(); + if (object.key != null) + message.key = String(object.key); + if (object.value) { + if (!Array.isArray(object.value)) + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.value: array expected"); + message.value = []; + for (var i = 0; i < object.value.length; ++i) + message.value[i] = String(object.value[i]); + } + return message; + }; + + /** + * Creates a plain object from a RegistryHeader message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader} message RegistryHeader + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RegistryHeader.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.value = []; + if (options.defaults) + object.key = ""; + if (message.key != null && message.hasOwnProperty("key")) + object.key = message.key; + if (message.value && message.value.length) { + object.value = []; + for (var j = 0; j < message.value.length; ++j) + object.value[j] = message.value[j]; + } + return object; + }; + + /** + * Converts this RegistryHeader to JSON. + * @function toJSON + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @instance + * @returns {Object.} JSON object + */ + RegistryHeader.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RegistryHeader + * @function getTypeUrl + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RegistryHeader.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader"; + }; + + return RegistryHeader; + })(); + + /** + * HostCapability enum. + * @name google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostCapability + * @enum {number} + * @property {number} HOST_CAPABILITY_UNSPECIFIED=0 HOST_CAPABILITY_UNSPECIFIED value + * @property {number} HOST_CAPABILITY_PULL=1 HOST_CAPABILITY_PULL value + * @property {number} HOST_CAPABILITY_RESOLVE=2 HOST_CAPABILITY_RESOLVE value + * @property {number} HOST_CAPABILITY_PUSH=3 HOST_CAPABILITY_PUSH value + */ + RegistryHostConfig.HostCapability = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "HOST_CAPABILITY_UNSPECIFIED"] = 0; + values[valuesById[1] = "HOST_CAPABILITY_PULL"] = 1; + values[valuesById[2] = "HOST_CAPABILITY_RESOLVE"] = 2; + values[valuesById[3] = "HOST_CAPABILITY_PUSH"] = 3; + return values; + })(); + + RegistryHostConfig.HostConfig = (function() { + + /** + * Properties of a HostConfig. + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @interface IHostConfig + * @property {string|null} [host] HostConfig host + * @property {Array.|null} [capabilities] HostConfig capabilities + * @property {boolean|null} [overridePath] HostConfig overridePath + * @property {Array.|null} [header] HostConfig header + * @property {Array.|null} [ca] HostConfig ca + * @property {Array.|null} [client] HostConfig client + * @property {google.protobuf.IDuration|null} [dialTimeout] HostConfig dialTimeout + */ + + /** + * Constructs a new HostConfig. + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig + * @classdesc Represents a HostConfig. + * @implements IHostConfig + * @constructor + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig=} [properties] Properties to set + */ + function HostConfig(properties) { + this.capabilities = []; + this.header = []; + this.ca = []; + this.client = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * HostConfig host. + * @member {string} host + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.host = ""; + + /** + * HostConfig capabilities. + * @member {Array.} capabilities + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.capabilities = $util.emptyArray; + + /** + * HostConfig overridePath. + * @member {boolean} overridePath + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.overridePath = false; + + /** + * HostConfig header. + * @member {Array.} header + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.header = $util.emptyArray; + + /** + * HostConfig ca. + * @member {Array.} ca + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.ca = $util.emptyArray; + + /** + * HostConfig client. + * @member {Array.} client + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.client = $util.emptyArray; + + /** + * HostConfig dialTimeout. + * @member {google.protobuf.IDuration|null|undefined} dialTimeout + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + */ + HostConfig.prototype.dialTimeout = null; + + /** + * Creates a new HostConfig instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig=} [properties] Properties to set + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig} HostConfig instance + */ + HostConfig.create = function create(properties) { + return new HostConfig(properties); + }; + + /** + * Encodes the specified HostConfig message. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig} message HostConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + HostConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.host != null && Object.hasOwnProperty.call(message, "host")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.host); + if (message.capabilities != null && message.capabilities.length) { + writer.uint32(/* id 2, wireType 2 =*/18).fork(); + for (var i = 0; i < message.capabilities.length; ++i) + writer.int32(message.capabilities[i]); + writer.ldelim(); + } + if (message.overridePath != null && Object.hasOwnProperty.call(message, "overridePath")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.overridePath); + if (message.header != null && message.header.length) + for (var i = 0; i < message.header.length; ++i) + $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.encode(message.header[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.ca != null && message.ca.length) + for (var i = 0; i < message.ca.length; ++i) + $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.encode(message.ca[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.client != null && message.client.length) + for (var i = 0; i < message.client.length; ++i) + $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.encode(message.client[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.dialTimeout != null && Object.hasOwnProperty.call(message, "dialTimeout")) + $root.google.protobuf.Duration.encode(message.dialTimeout, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified HostConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.IHostConfig} message HostConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + HostConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a HostConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig} HostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + HostConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.host = reader.string(); + break; + } + case 2: { + if (!(message.capabilities && message.capabilities.length)) + message.capabilities = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.capabilities.push(reader.int32()); + } else + message.capabilities.push(reader.int32()); + break; + } + case 3: { + message.overridePath = reader.bool(); + break; + } + case 4: { + if (!(message.header && message.header.length)) + message.header = []; + message.header.push($root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.decode(reader, reader.uint32())); + break; + } + case 5: { + if (!(message.ca && message.ca.length)) + message.ca = []; + message.ca.push($root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.decode(reader, reader.uint32())); + break; + } + case 6: { + if (!(message.client && message.client.length)) + message.client = []; + message.client.push($root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.decode(reader, reader.uint32())); + break; + } + case 7: { + message.dialTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a HostConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig} HostConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + HostConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a HostConfig message. + * @function verify + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + HostConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.host != null && message.hasOwnProperty("host")) + if (!$util.isString(message.host)) + return "host: string expected"; + if (message.capabilities != null && message.hasOwnProperty("capabilities")) { + if (!Array.isArray(message.capabilities)) + return "capabilities: array expected"; + for (var i = 0; i < message.capabilities.length; ++i) + switch (message.capabilities[i]) { + default: + return "capabilities: enum value[] expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + } + if (message.overridePath != null && message.hasOwnProperty("overridePath")) + if (typeof message.overridePath !== "boolean") + return "overridePath: boolean expected"; + if (message.header != null && message.hasOwnProperty("header")) { + if (!Array.isArray(message.header)) + return "header: array expected"; + for (var i = 0; i < message.header.length; ++i) { + var error = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.verify(message.header[i]); + if (error) + return "header." + error; + } + } + if (message.ca != null && message.hasOwnProperty("ca")) { + if (!Array.isArray(message.ca)) + return "ca: array expected"; + for (var i = 0; i < message.ca.length; ++i) { + var error = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.verify(message.ca[i]); + if (error) + return "ca." + error; + } + } + if (message.client != null && message.hasOwnProperty("client")) { + if (!Array.isArray(message.client)) + return "client: array expected"; + for (var i = 0; i < message.client.length; ++i) { + var error = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.verify(message.client[i]); + if (error) + return "client." + error; + } + } + if (message.dialTimeout != null && message.hasOwnProperty("dialTimeout")) { + var error = $root.google.protobuf.Duration.verify(message.dialTimeout); + if (error) + return "dialTimeout." + error; + } + return null; + }; + + /** + * Creates a HostConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig} HostConfig + */ + HostConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig) + return object; + var message = new $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig(); + if (object.host != null) + message.host = String(object.host); + if (object.capabilities) { + if (!Array.isArray(object.capabilities)) + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.capabilities: array expected"); + message.capabilities = []; + for (var i = 0; i < object.capabilities.length; ++i) + switch (object.capabilities[i]) { + default: + if (typeof object.capabilities[i] === "number") { + message.capabilities[i] = object.capabilities[i]; + break; + } + case "HOST_CAPABILITY_UNSPECIFIED": + case 0: + message.capabilities[i] = 0; + break; + case "HOST_CAPABILITY_PULL": + case 1: + message.capabilities[i] = 1; + break; + case "HOST_CAPABILITY_RESOLVE": + case 2: + message.capabilities[i] = 2; + break; + case "HOST_CAPABILITY_PUSH": + case 3: + message.capabilities[i] = 3; + break; + } + } + if (object.overridePath != null) + message.overridePath = Boolean(object.overridePath); + if (object.header) { + if (!Array.isArray(object.header)) + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.header: array expected"); + message.header = []; + for (var i = 0; i < object.header.length; ++i) { + if (typeof object.header[i] !== "object") + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.header: object expected"); + message.header[i] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.fromObject(object.header[i]); + } + } + if (object.ca) { + if (!Array.isArray(object.ca)) + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.ca: array expected"); + message.ca = []; + for (var i = 0; i < object.ca.length; ++i) { + if (typeof object.ca[i] !== "object") + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.ca: object expected"); + message.ca[i] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.fromObject(object.ca[i]); + } + } + if (object.client) { + if (!Array.isArray(object.client)) + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.client: array expected"); + message.client = []; + for (var i = 0; i < object.client.length; ++i) { + if (typeof object.client[i] !== "object") + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.client: object expected"); + message.client[i] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.fromObject(object.client[i]); + } + } + if (object.dialTimeout != null) { + if (typeof object.dialTimeout !== "object") + throw TypeError(".google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig.dialTimeout: object expected"); + message.dialTimeout = $root.google.protobuf.Duration.fromObject(object.dialTimeout); + } + return message; + }; + + /** + * Creates a plain object from a HostConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig} message HostConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + HostConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.capabilities = []; + object.header = []; + object.ca = []; + object.client = []; + } + if (options.defaults) { + object.host = ""; + object.overridePath = false; + object.dialTimeout = null; + } + if (message.host != null && message.hasOwnProperty("host")) + object.host = message.host; + if (message.capabilities && message.capabilities.length) { + object.capabilities = []; + for (var j = 0; j < message.capabilities.length; ++j) + object.capabilities[j] = options.enums === String ? $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostCapability[message.capabilities[j]] === undefined ? message.capabilities[j] : $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostCapability[message.capabilities[j]] : message.capabilities[j]; + } + if (message.overridePath != null && message.hasOwnProperty("overridePath")) + object.overridePath = message.overridePath; + if (message.header && message.header.length) { + object.header = []; + for (var j = 0; j < message.header.length; ++j) + object.header[j] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.RegistryHeader.toObject(message.header[j], options); + } + if (message.ca && message.ca.length) { + object.ca = []; + for (var j = 0; j < message.ca.length; ++j) + object.ca[j] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfig.toObject(message.ca[j], options); + } + if (message.client && message.client.length) { + object.client = []; + for (var j = 0; j < message.client.length; ++j) + object.client[j] = $root.google.container.v1beta1.ContainerdConfig.RegistryHostConfig.CertificateConfigPair.toObject(message.client[j], options); + } + if (message.dialTimeout != null && message.hasOwnProperty("dialTimeout")) + object.dialTimeout = $root.google.protobuf.Duration.toObject(message.dialTimeout, options); + return object; + }; + + /** + * Converts this HostConfig to JSON. + * @function toJSON + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @instance + * @returns {Object.} JSON object + */ + HostConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for HostConfig + * @function getTypeUrl + * @memberof google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + HostConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.ContainerdConfig.RegistryHostConfig.HostConfig"; + }; + + return HostConfig; + })(); + + return RegistryHostConfig; + })(); + return ContainerdConfig; })(); @@ -87573,6 +94372,8 @@ * @property {google.container.v1beta1.IRayOperatorConfig|null} [rayOperatorConfig] AddonsConfig rayOperatorConfig * @property {google.container.v1beta1.IHighScaleCheckpointingConfig|null} [highScaleCheckpointingConfig] AddonsConfig highScaleCheckpointingConfig * @property {google.container.v1beta1.ILustreCsiDriverConfig|null} [lustreCsiDriverConfig] AddonsConfig lustreCsiDriverConfig + * @property {google.container.v1beta1.IPodSnapshotConfig|null} [podSnapshotConfig] AddonsConfig podSnapshotConfig + * @property {google.container.v1beta1.ISliceControllerConfig|null} [sliceControllerConfig] AddonsConfig sliceControllerConfig */ /** @@ -87734,6 +94535,22 @@ */ AddonsConfig.prototype.lustreCsiDriverConfig = null; + /** + * AddonsConfig podSnapshotConfig. + * @member {google.container.v1beta1.IPodSnapshotConfig|null|undefined} podSnapshotConfig + * @memberof google.container.v1beta1.AddonsConfig + * @instance + */ + AddonsConfig.prototype.podSnapshotConfig = null; + + /** + * AddonsConfig sliceControllerConfig. + * @member {google.container.v1beta1.ISliceControllerConfig|null|undefined} sliceControllerConfig + * @memberof google.container.v1beta1.AddonsConfig + * @instance + */ + AddonsConfig.prototype.sliceControllerConfig = null; + /** * Creates a new AddonsConfig instance using the specified properties. * @function create @@ -87794,6 +94611,10 @@ $root.google.container.v1beta1.HighScaleCheckpointingConfig.encode(message.highScaleCheckpointingConfig, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim(); if (message.lustreCsiDriverConfig != null && Object.hasOwnProperty.call(message, "lustreCsiDriverConfig")) $root.google.container.v1beta1.LustreCsiDriverConfig.encode(message.lustreCsiDriverConfig, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); + if (message.podSnapshotConfig != null && Object.hasOwnProperty.call(message, "podSnapshotConfig")) + $root.google.container.v1beta1.PodSnapshotConfig.encode(message.podSnapshotConfig, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + if (message.sliceControllerConfig != null && Object.hasOwnProperty.call(message, "sliceControllerConfig")) + $root.google.container.v1beta1.SliceControllerConfig.encode(message.sliceControllerConfig, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim(); return writer; }; @@ -87902,6 +94723,14 @@ message.lustreCsiDriverConfig = $root.google.container.v1beta1.LustreCsiDriverConfig.decode(reader, reader.uint32()); break; } + case 24: { + message.podSnapshotConfig = $root.google.container.v1beta1.PodSnapshotConfig.decode(reader, reader.uint32()); + break; + } + case 26: { + message.sliceControllerConfig = $root.google.container.v1beta1.SliceControllerConfig.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -88027,6 +94856,16 @@ if (error) return "lustreCsiDriverConfig." + error; } + if (message.podSnapshotConfig != null && message.hasOwnProperty("podSnapshotConfig")) { + var error = $root.google.container.v1beta1.PodSnapshotConfig.verify(message.podSnapshotConfig); + if (error) + return "podSnapshotConfig." + error; + } + if (message.sliceControllerConfig != null && message.hasOwnProperty("sliceControllerConfig")) { + var error = $root.google.container.v1beta1.SliceControllerConfig.verify(message.sliceControllerConfig); + if (error) + return "sliceControllerConfig." + error; + } return null; }; @@ -88132,6 +94971,16 @@ throw TypeError(".google.container.v1beta1.AddonsConfig.lustreCsiDriverConfig: object expected"); message.lustreCsiDriverConfig = $root.google.container.v1beta1.LustreCsiDriverConfig.fromObject(object.lustreCsiDriverConfig); } + if (object.podSnapshotConfig != null) { + if (typeof object.podSnapshotConfig !== "object") + throw TypeError(".google.container.v1beta1.AddonsConfig.podSnapshotConfig: object expected"); + message.podSnapshotConfig = $root.google.container.v1beta1.PodSnapshotConfig.fromObject(object.podSnapshotConfig); + } + if (object.sliceControllerConfig != null) { + if (typeof object.sliceControllerConfig !== "object") + throw TypeError(".google.container.v1beta1.AddonsConfig.sliceControllerConfig: object expected"); + message.sliceControllerConfig = $root.google.container.v1beta1.SliceControllerConfig.fromObject(object.sliceControllerConfig); + } return message; }; @@ -88167,6 +95016,8 @@ object.rayOperatorConfig = null; object.highScaleCheckpointingConfig = null; object.lustreCsiDriverConfig = null; + object.podSnapshotConfig = null; + object.sliceControllerConfig = null; } if (message.httpLoadBalancing != null && message.hasOwnProperty("httpLoadBalancing")) object.httpLoadBalancing = $root.google.container.v1beta1.HttpLoadBalancing.toObject(message.httpLoadBalancing, options); @@ -88204,6 +95055,10 @@ object.highScaleCheckpointingConfig = $root.google.container.v1beta1.HighScaleCheckpointingConfig.toObject(message.highScaleCheckpointingConfig, options); if (message.lustreCsiDriverConfig != null && message.hasOwnProperty("lustreCsiDriverConfig")) object.lustreCsiDriverConfig = $root.google.container.v1beta1.LustreCsiDriverConfig.toObject(message.lustreCsiDriverConfig, options); + if (message.podSnapshotConfig != null && message.hasOwnProperty("podSnapshotConfig")) + object.podSnapshotConfig = $root.google.container.v1beta1.PodSnapshotConfig.toObject(message.podSnapshotConfig, options); + if (message.sliceControllerConfig != null && message.hasOwnProperty("sliceControllerConfig")) + object.sliceControllerConfig = $root.google.container.v1beta1.SliceControllerConfig.toObject(message.sliceControllerConfig, options); return object; }; @@ -91335,6 +98190,211 @@ return LustreCsiDriverConfig; })(); + v1beta1.SliceControllerConfig = (function() { + + /** + * Properties of a SliceControllerConfig. + * @memberof google.container.v1beta1 + * @interface ISliceControllerConfig + * @property {boolean|null} [enabled] SliceControllerConfig enabled + */ + + /** + * Constructs a new SliceControllerConfig. + * @memberof google.container.v1beta1 + * @classdesc Represents a SliceControllerConfig. + * @implements ISliceControllerConfig + * @constructor + * @param {google.container.v1beta1.ISliceControllerConfig=} [properties] Properties to set + */ + function SliceControllerConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SliceControllerConfig enabled. + * @member {boolean} enabled + * @memberof google.container.v1beta1.SliceControllerConfig + * @instance + */ + SliceControllerConfig.prototype.enabled = false; + + /** + * Creates a new SliceControllerConfig instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {google.container.v1beta1.ISliceControllerConfig=} [properties] Properties to set + * @returns {google.container.v1beta1.SliceControllerConfig} SliceControllerConfig instance + */ + SliceControllerConfig.create = function create(properties) { + return new SliceControllerConfig(properties); + }; + + /** + * Encodes the specified SliceControllerConfig message. Does not implicitly {@link google.container.v1beta1.SliceControllerConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {google.container.v1beta1.ISliceControllerConfig} message SliceControllerConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SliceControllerConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); + return writer; + }; + + /** + * Encodes the specified SliceControllerConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.SliceControllerConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {google.container.v1beta1.ISliceControllerConfig} message SliceControllerConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SliceControllerConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SliceControllerConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.SliceControllerConfig} SliceControllerConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SliceControllerConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.SliceControllerConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.enabled = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SliceControllerConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.SliceControllerConfig} SliceControllerConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SliceControllerConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SliceControllerConfig message. + * @function verify + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SliceControllerConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.enabled != null && message.hasOwnProperty("enabled")) + if (typeof message.enabled !== "boolean") + return "enabled: boolean expected"; + return null; + }; + + /** + * Creates a SliceControllerConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.SliceControllerConfig} SliceControllerConfig + */ + SliceControllerConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.SliceControllerConfig) + return object; + var message = new $root.google.container.v1beta1.SliceControllerConfig(); + if (object.enabled != null) + message.enabled = Boolean(object.enabled); + return message; + }; + + /** + * Creates a plain object from a SliceControllerConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {google.container.v1beta1.SliceControllerConfig} message SliceControllerConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SliceControllerConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.enabled = false; + if (message.enabled != null && message.hasOwnProperty("enabled")) + object.enabled = message.enabled; + return object; + }; + + /** + * Converts this SliceControllerConfig to JSON. + * @function toJSON + * @memberof google.container.v1beta1.SliceControllerConfig + * @instance + * @returns {Object.} JSON object + */ + SliceControllerConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SliceControllerConfig + * @function getTypeUrl + * @memberof google.container.v1beta1.SliceControllerConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SliceControllerConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.SliceControllerConfig"; + }; + + return SliceControllerConfig; + })(); + v1beta1.RayOperatorConfig = (function() { /** @@ -96072,6 +103132,8 @@ * @property {string|null} [endpoint] Cluster endpoint * @property {string|null} [initialClusterVersion] Cluster initialClusterVersion * @property {string|null} [currentMasterVersion] Cluster currentMasterVersion + * @property {string|null} [currentEmulatedVersion] Cluster currentEmulatedVersion + * @property {google.container.v1beta1.IRollbackSafeUpgrade|null} [rollbackSafeUpgrade] Cluster rollbackSafeUpgrade * @property {string|null} [currentNodeVersion] Cluster currentNodeVersion * @property {string|null} [createTime] Cluster createTime * @property {google.container.v1beta1.Cluster.Status|null} [status] Cluster status @@ -96109,6 +103171,7 @@ * @property {google.container.v1beta1.IGkeAutoUpgradeConfig|null} [gkeAutoUpgradeConfig] Cluster gkeAutoUpgradeConfig * @property {google.container.v1beta1.IAnonymousAuthenticationConfig|null} [anonymousAuthenticationConfig] Cluster anonymousAuthenticationConfig * @property {google.container.v1beta1.ISecretSyncConfig|null} [secretSyncConfig] Cluster secretSyncConfig + * @property {google.container.v1beta1.IManagedOpenTelemetryConfig|null} [managedOpentelemetryConfig] Cluster managedOpentelemetryConfig */ /** @@ -96540,6 +103603,22 @@ */ Cluster.prototype.currentMasterVersion = ""; + /** + * Cluster currentEmulatedVersion. + * @member {string} currentEmulatedVersion + * @memberof google.container.v1beta1.Cluster + * @instance + */ + Cluster.prototype.currentEmulatedVersion = ""; + + /** + * Cluster rollbackSafeUpgrade. + * @member {google.container.v1beta1.IRollbackSafeUpgrade|null|undefined} rollbackSafeUpgrade + * @memberof google.container.v1beta1.Cluster + * @instance + */ + Cluster.prototype.rollbackSafeUpgrade = null; + /** * Cluster currentNodeVersion. * @member {string} currentNodeVersion @@ -96836,6 +103915,14 @@ */ Cluster.prototype.secretSyncConfig = null; + /** + * Cluster managedOpentelemetryConfig. + * @member {google.container.v1beta1.IManagedOpenTelemetryConfig|null|undefined} managedOpentelemetryConfig + * @memberof google.container.v1beta1.Cluster + * @instance + */ + Cluster.prototype.managedOpentelemetryConfig = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -97081,6 +104168,12 @@ $root.google.container.v1beta1.AnonymousAuthenticationConfig.encode(message.anonymousAuthenticationConfig, writer.uint32(/* id 164, wireType 2 =*/1314).fork()).ldelim(); if (message.secretSyncConfig != null && Object.hasOwnProperty.call(message, "secretSyncConfig")) $root.google.container.v1beta1.SecretSyncConfig.encode(message.secretSyncConfig, writer.uint32(/* id 166, wireType 2 =*/1330).fork()).ldelim(); + if (message.currentEmulatedVersion != null && Object.hasOwnProperty.call(message, "currentEmulatedVersion")) + writer.uint32(/* id 167, wireType 2 =*/1338).string(message.currentEmulatedVersion); + if (message.managedOpentelemetryConfig != null && Object.hasOwnProperty.call(message, "managedOpentelemetryConfig")) + $root.google.container.v1beta1.ManagedOpenTelemetryConfig.encode(message.managedOpentelemetryConfig, writer.uint32(/* id 168, wireType 2 =*/1346).fork()).ldelim(); + if (message.rollbackSafeUpgrade != null && Object.hasOwnProperty.call(message, "rollbackSafeUpgrade")) + $root.google.container.v1beta1.RollbackSafeUpgrade.encode(message.rollbackSafeUpgrade, writer.uint32(/* id 170, wireType 2 =*/1362).fork()).ldelim(); return writer; }; @@ -97346,6 +104439,14 @@ message.currentMasterVersion = reader.string(); break; } + case 167: { + message.currentEmulatedVersion = reader.string(); + break; + } + case 170: { + message.rollbackSafeUpgrade = $root.google.container.v1beta1.RollbackSafeUpgrade.decode(reader, reader.uint32()); + break; + } case 105: { message.currentNodeVersion = reader.string(); break; @@ -97498,6 +104599,10 @@ message.secretSyncConfig = $root.google.container.v1beta1.SecretSyncConfig.decode(reader, reader.uint32()); break; } + case 168: { + message.managedOpentelemetryConfig = $root.google.container.v1beta1.ManagedOpenTelemetryConfig.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -97766,6 +104871,14 @@ if (message.currentMasterVersion != null && message.hasOwnProperty("currentMasterVersion")) if (!$util.isString(message.currentMasterVersion)) return "currentMasterVersion: string expected"; + if (message.currentEmulatedVersion != null && message.hasOwnProperty("currentEmulatedVersion")) + if (!$util.isString(message.currentEmulatedVersion)) + return "currentEmulatedVersion: string expected"; + if (message.rollbackSafeUpgrade != null && message.hasOwnProperty("rollbackSafeUpgrade")) { + var error = $root.google.container.v1beta1.RollbackSafeUpgrade.verify(message.rollbackSafeUpgrade); + if (error) + return "rollbackSafeUpgrade." + error; + } if (message.currentNodeVersion != null && message.hasOwnProperty("currentNodeVersion")) if (!$util.isString(message.currentNodeVersion)) return "currentNodeVersion: string expected"; @@ -97953,6 +105066,11 @@ if (error) return "secretSyncConfig." + error; } + if (message.managedOpentelemetryConfig != null && message.hasOwnProperty("managedOpentelemetryConfig")) { + var error = $root.google.container.v1beta1.ManagedOpenTelemetryConfig.verify(message.managedOpentelemetryConfig); + if (error) + return "managedOpentelemetryConfig." + error; + } return null; }; @@ -98183,6 +105301,13 @@ message.initialClusterVersion = String(object.initialClusterVersion); if (object.currentMasterVersion != null) message.currentMasterVersion = String(object.currentMasterVersion); + if (object.currentEmulatedVersion != null) + message.currentEmulatedVersion = String(object.currentEmulatedVersion); + if (object.rollbackSafeUpgrade != null) { + if (typeof object.rollbackSafeUpgrade !== "object") + throw TypeError(".google.container.v1beta1.Cluster.rollbackSafeUpgrade: object expected"); + message.rollbackSafeUpgrade = $root.google.container.v1beta1.RollbackSafeUpgrade.fromObject(object.rollbackSafeUpgrade); + } if (object.currentNodeVersion != null) message.currentNodeVersion = String(object.currentNodeVersion); if (object.createTime != null) @@ -98364,6 +105489,11 @@ throw TypeError(".google.container.v1beta1.Cluster.secretSyncConfig: object expected"); message.secretSyncConfig = $root.google.container.v1beta1.SecretSyncConfig.fromObject(object.secretSyncConfig); } + if (object.managedOpentelemetryConfig != null) { + if (typeof object.managedOpentelemetryConfig !== "object") + throw TypeError(".google.container.v1beta1.Cluster.managedOpentelemetryConfig: object expected"); + message.managedOpentelemetryConfig = $root.google.container.v1beta1.ManagedOpenTelemetryConfig.fromObject(object.managedOpentelemetryConfig); + } return message; }; @@ -98466,6 +105596,9 @@ object.gkeAutoUpgradeConfig = null; object.anonymousAuthenticationConfig = null; object.secretSyncConfig = null; + object.currentEmulatedVersion = ""; + object.managedOpentelemetryConfig = null; + object.rollbackSafeUpgrade = null; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -98680,6 +105813,12 @@ object.anonymousAuthenticationConfig = $root.google.container.v1beta1.AnonymousAuthenticationConfig.toObject(message.anonymousAuthenticationConfig, options); if (message.secretSyncConfig != null && message.hasOwnProperty("secretSyncConfig")) object.secretSyncConfig = $root.google.container.v1beta1.SecretSyncConfig.toObject(message.secretSyncConfig, options); + if (message.currentEmulatedVersion != null && message.hasOwnProperty("currentEmulatedVersion")) + object.currentEmulatedVersion = message.currentEmulatedVersion; + if (message.managedOpentelemetryConfig != null && message.hasOwnProperty("managedOpentelemetryConfig")) + object.managedOpentelemetryConfig = $root.google.container.v1beta1.ManagedOpenTelemetryConfig.toObject(message.managedOpentelemetryConfig, options); + if (message.rollbackSafeUpgrade != null && message.hasOwnProperty("rollbackSafeUpgrade")) + object.rollbackSafeUpgrade = $root.google.container.v1beta1.RollbackSafeUpgrade.toObject(message.rollbackSafeUpgrade, options); return object; }; @@ -99000,6 +106139,7 @@ * @property {Array.|null} [serviceAccountVerificationKeys] UserManagedKeysConfig serviceAccountVerificationKeys * @property {string|null} [aggregationCa] UserManagedKeysConfig aggregationCa * @property {string|null} [controlPlaneDiskEncryptionKey] UserManagedKeysConfig controlPlaneDiskEncryptionKey + * @property {Array.|null} [controlPlaneDiskEncryptionKeyVersions] UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions * @property {string|null} [gkeopsEtcdBackupEncryptionKey] UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey */ @@ -99014,6 +106154,7 @@ function UserManagedKeysConfig(properties) { this.serviceAccountSigningKeys = []; this.serviceAccountVerificationKeys = []; + this.controlPlaneDiskEncryptionKeyVersions = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -99076,6 +106217,14 @@ */ UserManagedKeysConfig.prototype.controlPlaneDiskEncryptionKey = ""; + /** + * UserManagedKeysConfig controlPlaneDiskEncryptionKeyVersions. + * @member {Array.} controlPlaneDiskEncryptionKeyVersions + * @memberof google.container.v1beta1.UserManagedKeysConfig + * @instance + */ + UserManagedKeysConfig.prototype.controlPlaneDiskEncryptionKeyVersions = $util.emptyArray; + /** * UserManagedKeysConfig gkeopsEtcdBackupEncryptionKey. * @member {string} gkeopsEtcdBackupEncryptionKey @@ -99126,6 +106275,9 @@ writer.uint32(/* id 16, wireType 2 =*/130).string(message.controlPlaneDiskEncryptionKey); if (message.gkeopsEtcdBackupEncryptionKey != null && Object.hasOwnProperty.call(message, "gkeopsEtcdBackupEncryptionKey")) writer.uint32(/* id 17, wireType 2 =*/138).string(message.gkeopsEtcdBackupEncryptionKey); + if (message.controlPlaneDiskEncryptionKeyVersions != null && message.controlPlaneDiskEncryptionKeyVersions.length) + for (var i = 0; i < message.controlPlaneDiskEncryptionKeyVersions.length; ++i) + writer.uint32(/* id 18, wireType 2 =*/146).string(message.controlPlaneDiskEncryptionKeyVersions[i]); return writer; }; @@ -99194,6 +106346,12 @@ message.controlPlaneDiskEncryptionKey = reader.string(); break; } + case 18: { + if (!(message.controlPlaneDiskEncryptionKeyVersions && message.controlPlaneDiskEncryptionKeyVersions.length)) + message.controlPlaneDiskEncryptionKeyVersions = []; + message.controlPlaneDiskEncryptionKeyVersions.push(reader.string()); + break; + } case 17: { message.gkeopsEtcdBackupEncryptionKey = reader.string(); break; @@ -99262,6 +106420,13 @@ if (message.controlPlaneDiskEncryptionKey != null && message.hasOwnProperty("controlPlaneDiskEncryptionKey")) if (!$util.isString(message.controlPlaneDiskEncryptionKey)) return "controlPlaneDiskEncryptionKey: string expected"; + if (message.controlPlaneDiskEncryptionKeyVersions != null && message.hasOwnProperty("controlPlaneDiskEncryptionKeyVersions")) { + if (!Array.isArray(message.controlPlaneDiskEncryptionKeyVersions)) + return "controlPlaneDiskEncryptionKeyVersions: array expected"; + for (var i = 0; i < message.controlPlaneDiskEncryptionKeyVersions.length; ++i) + if (!$util.isString(message.controlPlaneDiskEncryptionKeyVersions[i])) + return "controlPlaneDiskEncryptionKeyVersions: string[] expected"; + } if (message.gkeopsEtcdBackupEncryptionKey != null && message.hasOwnProperty("gkeopsEtcdBackupEncryptionKey")) if (!$util.isString(message.gkeopsEtcdBackupEncryptionKey)) return "gkeopsEtcdBackupEncryptionKey: string expected"; @@ -99304,6 +106469,13 @@ message.aggregationCa = String(object.aggregationCa); if (object.controlPlaneDiskEncryptionKey != null) message.controlPlaneDiskEncryptionKey = String(object.controlPlaneDiskEncryptionKey); + if (object.controlPlaneDiskEncryptionKeyVersions) { + if (!Array.isArray(object.controlPlaneDiskEncryptionKeyVersions)) + throw TypeError(".google.container.v1beta1.UserManagedKeysConfig.controlPlaneDiskEncryptionKeyVersions: array expected"); + message.controlPlaneDiskEncryptionKeyVersions = []; + for (var i = 0; i < object.controlPlaneDiskEncryptionKeyVersions.length; ++i) + message.controlPlaneDiskEncryptionKeyVersions[i] = String(object.controlPlaneDiskEncryptionKeyVersions[i]); + } if (object.gkeopsEtcdBackupEncryptionKey != null) message.gkeopsEtcdBackupEncryptionKey = String(object.gkeopsEtcdBackupEncryptionKey); return message; @@ -99325,6 +106497,7 @@ if (options.arrays || options.defaults) { object.serviceAccountSigningKeys = []; object.serviceAccountVerificationKeys = []; + object.controlPlaneDiskEncryptionKeyVersions = []; } if (options.defaults) { object.clusterCa = ""; @@ -99356,6 +106529,11 @@ object.controlPlaneDiskEncryptionKey = message.controlPlaneDiskEncryptionKey; if (message.gkeopsEtcdBackupEncryptionKey != null && message.hasOwnProperty("gkeopsEtcdBackupEncryptionKey")) object.gkeopsEtcdBackupEncryptionKey = message.gkeopsEtcdBackupEncryptionKey; + if (message.controlPlaneDiskEncryptionKeyVersions && message.controlPlaneDiskEncryptionKeyVersions.length) { + object.controlPlaneDiskEncryptionKeyVersions = []; + for (var j = 0; j < message.controlPlaneDiskEncryptionKeyVersions.length; ++j) + object.controlPlaneDiskEncryptionKeyVersions[j] = message.controlPlaneDiskEncryptionKeyVersions[j]; + } return object; }; @@ -102205,6 +109383,9 @@ * @property {google.container.v1beta1.IGkeAutoUpgradeConfig|null} [gkeAutoUpgradeConfig] ClusterUpdate gkeAutoUpgradeConfig * @property {google.container.v1beta1.INetworkTierConfig|null} [desiredNetworkTierConfig] ClusterUpdate desiredNetworkTierConfig * @property {google.container.v1beta1.ISecretSyncConfig|null} [desiredSecretSyncConfig] ClusterUpdate desiredSecretSyncConfig + * @property {google.container.v1beta1.IPrivilegedAdmissionConfig|null} [desiredPrivilegedAdmissionConfig] ClusterUpdate desiredPrivilegedAdmissionConfig + * @property {google.container.v1beta1.IRollbackSafeUpgrade|null} [desiredRollbackSafeUpgrade] ClusterUpdate desiredRollbackSafeUpgrade + * @property {google.container.v1beta1.IManagedOpenTelemetryConfig|null} [desiredManagedOpentelemetryConfig] ClusterUpdate desiredManagedOpentelemetryConfig */ /** @@ -102879,6 +110060,30 @@ */ ClusterUpdate.prototype.desiredSecretSyncConfig = null; + /** + * ClusterUpdate desiredPrivilegedAdmissionConfig. + * @member {google.container.v1beta1.IPrivilegedAdmissionConfig|null|undefined} desiredPrivilegedAdmissionConfig + * @memberof google.container.v1beta1.ClusterUpdate + * @instance + */ + ClusterUpdate.prototype.desiredPrivilegedAdmissionConfig = null; + + /** + * ClusterUpdate desiredRollbackSafeUpgrade. + * @member {google.container.v1beta1.IRollbackSafeUpgrade|null|undefined} desiredRollbackSafeUpgrade + * @memberof google.container.v1beta1.ClusterUpdate + * @instance + */ + ClusterUpdate.prototype.desiredRollbackSafeUpgrade = null; + + /** + * ClusterUpdate desiredManagedOpentelemetryConfig. + * @member {google.container.v1beta1.IManagedOpenTelemetryConfig|null|undefined} desiredManagedOpentelemetryConfig + * @memberof google.container.v1beta1.ClusterUpdate + * @instance + */ + ClusterUpdate.prototype.desiredManagedOpentelemetryConfig = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -103137,6 +110342,12 @@ $root.google.container.v1beta1.AnonymousAuthenticationConfig.encode(message.desiredAnonymousAuthenticationConfig, writer.uint32(/* id 156, wireType 2 =*/1250).fork()).ldelim(); if (message.desiredSecretSyncConfig != null && Object.hasOwnProperty.call(message, "desiredSecretSyncConfig")) $root.google.container.v1beta1.SecretSyncConfig.encode(message.desiredSecretSyncConfig, writer.uint32(/* id 158, wireType 2 =*/1266).fork()).ldelim(); + if (message.desiredPrivilegedAdmissionConfig != null && Object.hasOwnProperty.call(message, "desiredPrivilegedAdmissionConfig")) + $root.google.container.v1beta1.PrivilegedAdmissionConfig.encode(message.desiredPrivilegedAdmissionConfig, writer.uint32(/* id 159, wireType 2 =*/1274).fork()).ldelim(); + if (message.desiredRollbackSafeUpgrade != null && Object.hasOwnProperty.call(message, "desiredRollbackSafeUpgrade")) + $root.google.container.v1beta1.RollbackSafeUpgrade.encode(message.desiredRollbackSafeUpgrade, writer.uint32(/* id 161, wireType 2 =*/1290).fork()).ldelim(); + if (message.desiredManagedOpentelemetryConfig != null && Object.hasOwnProperty.call(message, "desiredManagedOpentelemetryConfig")) + $root.google.container.v1beta1.ManagedOpenTelemetryConfig.encode(message.desiredManagedOpentelemetryConfig, writer.uint32(/* id 163, wireType 2 =*/1306).fork()).ldelim(); return writer; }; @@ -103503,6 +110714,18 @@ message.desiredSecretSyncConfig = $root.google.container.v1beta1.SecretSyncConfig.decode(reader, reader.uint32()); break; } + case 159: { + message.desiredPrivilegedAdmissionConfig = $root.google.container.v1beta1.PrivilegedAdmissionConfig.decode(reader, reader.uint32()); + break; + } + case 161: { + message.desiredRollbackSafeUpgrade = $root.google.container.v1beta1.RollbackSafeUpgrade.decode(reader, reader.uint32()); + break; + } + case 163: { + message.desiredManagedOpentelemetryConfig = $root.google.container.v1beta1.ManagedOpenTelemetryConfig.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -103968,6 +111191,21 @@ if (error) return "desiredSecretSyncConfig." + error; } + if (message.desiredPrivilegedAdmissionConfig != null && message.hasOwnProperty("desiredPrivilegedAdmissionConfig")) { + var error = $root.google.container.v1beta1.PrivilegedAdmissionConfig.verify(message.desiredPrivilegedAdmissionConfig); + if (error) + return "desiredPrivilegedAdmissionConfig." + error; + } + if (message.desiredRollbackSafeUpgrade != null && message.hasOwnProperty("desiredRollbackSafeUpgrade")) { + var error = $root.google.container.v1beta1.RollbackSafeUpgrade.verify(message.desiredRollbackSafeUpgrade); + if (error) + return "desiredRollbackSafeUpgrade." + error; + } + if (message.desiredManagedOpentelemetryConfig != null && message.hasOwnProperty("desiredManagedOpentelemetryConfig")) { + var error = $root.google.container.v1beta1.ManagedOpenTelemetryConfig.verify(message.desiredManagedOpentelemetryConfig); + if (error) + return "desiredManagedOpentelemetryConfig." + error; + } return null; }; @@ -104420,6 +111658,21 @@ throw TypeError(".google.container.v1beta1.ClusterUpdate.desiredSecretSyncConfig: object expected"); message.desiredSecretSyncConfig = $root.google.container.v1beta1.SecretSyncConfig.fromObject(object.desiredSecretSyncConfig); } + if (object.desiredPrivilegedAdmissionConfig != null) { + if (typeof object.desiredPrivilegedAdmissionConfig !== "object") + throw TypeError(".google.container.v1beta1.ClusterUpdate.desiredPrivilegedAdmissionConfig: object expected"); + message.desiredPrivilegedAdmissionConfig = $root.google.container.v1beta1.PrivilegedAdmissionConfig.fromObject(object.desiredPrivilegedAdmissionConfig); + } + if (object.desiredRollbackSafeUpgrade != null) { + if (typeof object.desiredRollbackSafeUpgrade !== "object") + throw TypeError(".google.container.v1beta1.ClusterUpdate.desiredRollbackSafeUpgrade: object expected"); + message.desiredRollbackSafeUpgrade = $root.google.container.v1beta1.RollbackSafeUpgrade.fromObject(object.desiredRollbackSafeUpgrade); + } + if (object.desiredManagedOpentelemetryConfig != null) { + if (typeof object.desiredManagedOpentelemetryConfig !== "object") + throw TypeError(".google.container.v1beta1.ClusterUpdate.desiredManagedOpentelemetryConfig: object expected"); + message.desiredManagedOpentelemetryConfig = $root.google.container.v1beta1.ManagedOpenTelemetryConfig.fromObject(object.desiredManagedOpentelemetryConfig); + } return message; }; @@ -104509,6 +111762,9 @@ object.desiredNetworkTierConfig = null; object.desiredAnonymousAuthenticationConfig = null; object.desiredSecretSyncConfig = null; + object.desiredPrivilegedAdmissionConfig = null; + object.desiredRollbackSafeUpgrade = null; + object.desiredManagedOpentelemetryConfig = null; } if (message.desiredNodeVersion != null && message.hasOwnProperty("desiredNodeVersion")) object.desiredNodeVersion = message.desiredNodeVersion; @@ -104710,6 +111966,12 @@ object.desiredAnonymousAuthenticationConfig = $root.google.container.v1beta1.AnonymousAuthenticationConfig.toObject(message.desiredAnonymousAuthenticationConfig, options); if (message.desiredSecretSyncConfig != null && message.hasOwnProperty("desiredSecretSyncConfig")) object.desiredSecretSyncConfig = $root.google.container.v1beta1.SecretSyncConfig.toObject(message.desiredSecretSyncConfig, options); + if (message.desiredPrivilegedAdmissionConfig != null && message.hasOwnProperty("desiredPrivilegedAdmissionConfig")) + object.desiredPrivilegedAdmissionConfig = $root.google.container.v1beta1.PrivilegedAdmissionConfig.toObject(message.desiredPrivilegedAdmissionConfig, options); + if (message.desiredRollbackSafeUpgrade != null && message.hasOwnProperty("desiredRollbackSafeUpgrade")) + object.desiredRollbackSafeUpgrade = $root.google.container.v1beta1.RollbackSafeUpgrade.toObject(message.desiredRollbackSafeUpgrade, options); + if (message.desiredManagedOpentelemetryConfig != null && message.hasOwnProperty("desiredManagedOpentelemetryConfig")) + object.desiredManagedOpentelemetryConfig = $root.google.container.v1beta1.ManagedOpenTelemetryConfig.toObject(message.desiredManagedOpentelemetryConfig, options); return object; }; @@ -105016,6 +112278,7 @@ * @interface IAdditionalIPRangesConfig * @property {string|null} [subnetwork] AdditionalIPRangesConfig subnetwork * @property {Array.|null} [podIpv4RangeNames] AdditionalIPRangesConfig podIpv4RangeNames + * @property {google.container.v1beta1.AdditionalIPRangesConfig.Status|null} [status] AdditionalIPRangesConfig status */ /** @@ -105050,6 +112313,14 @@ */ AdditionalIPRangesConfig.prototype.podIpv4RangeNames = $util.emptyArray; + /** + * AdditionalIPRangesConfig status. + * @member {google.container.v1beta1.AdditionalIPRangesConfig.Status} status + * @memberof google.container.v1beta1.AdditionalIPRangesConfig + * @instance + */ + AdditionalIPRangesConfig.prototype.status = 0; + /** * Creates a new AdditionalIPRangesConfig instance using the specified properties. * @function create @@ -105079,6 +112350,8 @@ if (message.podIpv4RangeNames != null && message.podIpv4RangeNames.length) for (var i = 0; i < message.podIpv4RangeNames.length; ++i) writer.uint32(/* id 2, wireType 2 =*/18).string(message.podIpv4RangeNames[i]); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.status); return writer; }; @@ -105125,6 +112398,10 @@ message.podIpv4RangeNames.push(reader.string()); break; } + case 3: { + message.status = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -105170,6 +112447,15 @@ if (!$util.isString(message.podIpv4RangeNames[i])) return "podIpv4RangeNames: string[] expected"; } + if (message.status != null && message.hasOwnProperty("status")) + switch (message.status) { + default: + return "status: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; @@ -105194,6 +112480,26 @@ for (var i = 0; i < object.podIpv4RangeNames.length; ++i) message.podIpv4RangeNames[i] = String(object.podIpv4RangeNames[i]); } + switch (object.status) { + default: + if (typeof object.status === "number") { + message.status = object.status; + break; + } + break; + case "STATUS_UNSPECIFIED": + case 0: + message.status = 0; + break; + case "ACTIVE": + case 1: + message.status = 1; + break; + case "DRAINING": + case 2: + message.status = 2; + break; + } return message; }; @@ -105212,8 +112518,10 @@ var object = {}; if (options.arrays || options.defaults) object.podIpv4RangeNames = []; - if (options.defaults) + if (options.defaults) { object.subnetwork = ""; + object.status = options.enums === String ? "STATUS_UNSPECIFIED" : 0; + } if (message.subnetwork != null && message.hasOwnProperty("subnetwork")) object.subnetwork = message.subnetwork; if (message.podIpv4RangeNames && message.podIpv4RangeNames.length) { @@ -105221,6 +112529,8 @@ for (var j = 0; j < message.podIpv4RangeNames.length; ++j) object.podIpv4RangeNames[j] = message.podIpv4RangeNames[j]; } + if (message.status != null && message.hasOwnProperty("status")) + object.status = options.enums === String ? $root.google.container.v1beta1.AdditionalIPRangesConfig.Status[message.status] === undefined ? message.status : $root.google.container.v1beta1.AdditionalIPRangesConfig.Status[message.status] : message.status; return object; }; @@ -105250,6 +112560,22 @@ return typeUrlPrefix + "/google.container.v1beta1.AdditionalIPRangesConfig"; }; + /** + * Status enum. + * @name google.container.v1beta1.AdditionalIPRangesConfig.Status + * @enum {number} + * @property {number} STATUS_UNSPECIFIED=0 STATUS_UNSPECIFIED value + * @property {number} ACTIVE=1 ACTIVE value + * @property {number} DRAINING=2 DRAINING value + */ + AdditionalIPRangesConfig.Status = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "STATUS_UNSPECIFIED"] = 0; + values[valuesById[1] = "ACTIVE"] = 1; + values[valuesById[2] = "DRAINING"] = 2; + return values; + })(); + return AdditionalIPRangesConfig; })(); @@ -108510,6 +115836,8 @@ * @property {google.protobuf.IDuration|null} [maxRunDuration] UpdateNodePoolRequest maxRunDuration * @property {boolean|null} [flexStart] UpdateNodePoolRequest flexStart * @property {google.container.v1beta1.IBootDisk|null} [bootDisk] UpdateNodePoolRequest bootDisk + * @property {google.container.v1beta1.NodePool.INodeDrainConfig|null} [nodeDrainConfig] UpdateNodePoolRequest nodeDrainConfig + * @property {google.protobuf.IDuration|null} [consolidationDelay] UpdateNodePoolRequest consolidationDelay */ /** @@ -108810,6 +116138,22 @@ */ UpdateNodePoolRequest.prototype.bootDisk = null; + /** + * UpdateNodePoolRequest nodeDrainConfig. + * @member {google.container.v1beta1.NodePool.INodeDrainConfig|null|undefined} nodeDrainConfig + * @memberof google.container.v1beta1.UpdateNodePoolRequest + * @instance + */ + UpdateNodePoolRequest.prototype.nodeDrainConfig = null; + + /** + * UpdateNodePoolRequest consolidationDelay. + * @member {google.protobuf.IDuration|null|undefined} consolidationDelay + * @memberof google.container.v1beta1.UpdateNodePoolRequest + * @instance + */ + UpdateNodePoolRequest.prototype.consolidationDelay = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -108916,6 +116260,10 @@ writer.uint32(/* id 46, wireType 0 =*/368).bool(message.flexStart); if (message.bootDisk != null && Object.hasOwnProperty.call(message, "bootDisk")) $root.google.container.v1beta1.BootDisk.encode(message.bootDisk, writer.uint32(/* id 47, wireType 2 =*/378).fork()).ldelim(); + if (message.nodeDrainConfig != null && Object.hasOwnProperty.call(message, "nodeDrainConfig")) + $root.google.container.v1beta1.NodePool.NodeDrainConfig.encode(message.nodeDrainConfig, writer.uint32(/* id 48, wireType 2 =*/386).fork()).ldelim(); + if (message.consolidationDelay != null && Object.hasOwnProperty.call(message, "consolidationDelay")) + $root.google.protobuf.Duration.encode(message.consolidationDelay, writer.uint32(/* id 49, wireType 2 =*/394).fork()).ldelim(); return writer; }; @@ -109098,6 +116446,14 @@ message.bootDisk = $root.google.container.v1beta1.BootDisk.decode(reader, reader.uint32()); break; } + case 48: { + message.nodeDrainConfig = $root.google.container.v1beta1.NodePool.NodeDrainConfig.decode(reader, reader.uint32()); + break; + } + case 49: { + message.consolidationDelay = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -109295,6 +116651,16 @@ if (error) return "bootDisk." + error; } + if (message.nodeDrainConfig != null && message.hasOwnProperty("nodeDrainConfig")) { + var error = $root.google.container.v1beta1.NodePool.NodeDrainConfig.verify(message.nodeDrainConfig); + if (error) + return "nodeDrainConfig." + error; + } + if (message.consolidationDelay != null && message.hasOwnProperty("consolidationDelay")) { + var error = $root.google.protobuf.Duration.verify(message.consolidationDelay); + if (error) + return "consolidationDelay." + error; + } return null; }; @@ -109465,6 +116831,16 @@ throw TypeError(".google.container.v1beta1.UpdateNodePoolRequest.bootDisk: object expected"); message.bootDisk = $root.google.container.v1beta1.BootDisk.fromObject(object.bootDisk); } + if (object.nodeDrainConfig != null) { + if (typeof object.nodeDrainConfig !== "object") + throw TypeError(".google.container.v1beta1.UpdateNodePoolRequest.nodeDrainConfig: object expected"); + message.nodeDrainConfig = $root.google.container.v1beta1.NodePool.NodeDrainConfig.fromObject(object.nodeDrainConfig); + } + if (object.consolidationDelay != null) { + if (typeof object.consolidationDelay !== "object") + throw TypeError(".google.container.v1beta1.UpdateNodePoolRequest.consolidationDelay: object expected"); + message.consolidationDelay = $root.google.protobuf.Duration.fromObject(object.consolidationDelay); + } return message; }; @@ -109522,6 +116898,8 @@ object.queuedProvisioning = null; object.maxRunDuration = null; object.bootDisk = null; + object.nodeDrainConfig = null; + object.consolidationDelay = null; } if (message.projectId != null && message.hasOwnProperty("projectId")) object.projectId = message.projectId; @@ -109608,6 +116986,10 @@ } if (message.bootDisk != null && message.hasOwnProperty("bootDisk")) object.bootDisk = $root.google.container.v1beta1.BootDisk.toObject(message.bootDisk, options); + if (message.nodeDrainConfig != null && message.hasOwnProperty("nodeDrainConfig")) + object.nodeDrainConfig = $root.google.container.v1beta1.NodePool.NodeDrainConfig.toObject(message.nodeDrainConfig, options); + if (message.consolidationDelay != null && message.hasOwnProperty("consolidationDelay")) + object.consolidationDelay = $root.google.protobuf.Duration.toObject(message.consolidationDelay, options); return object; }; @@ -117739,6 +125121,7 @@ * @property {string|null} [etag] NodePool etag * @property {google.container.v1beta1.NodePool.IQueuedProvisioning|null} [queuedProvisioning] NodePool queuedProvisioning * @property {google.container.v1beta1.IBestEffortProvisioning|null} [bestEffortProvisioning] NodePool bestEffortProvisioning + * @property {google.container.v1beta1.NodePool.INodeDrainConfig|null} [nodeDrainConfig] NodePool nodeDrainConfig */ /** @@ -117927,6 +125310,14 @@ */ NodePool.prototype.bestEffortProvisioning = null; + /** + * NodePool nodeDrainConfig. + * @member {google.container.v1beta1.NodePool.INodeDrainConfig|null|undefined} nodeDrainConfig + * @memberof google.container.v1beta1.NodePool + * @instance + */ + NodePool.prototype.nodeDrainConfig = null; + /** * Creates a new NodePool instance using the specified properties. * @function create @@ -117996,6 +125387,8 @@ $root.google.container.v1beta1.NodePool.QueuedProvisioning.encode(message.queuedProvisioning, writer.uint32(/* id 112, wireType 2 =*/898).fork()).ldelim(); if (message.bestEffortProvisioning != null && Object.hasOwnProperty.call(message, "bestEffortProvisioning")) $root.google.container.v1beta1.BestEffortProvisioning.encode(message.bestEffortProvisioning, writer.uint32(/* id 113, wireType 2 =*/906).fork()).ldelim(); + if (message.nodeDrainConfig != null && Object.hasOwnProperty.call(message, "nodeDrainConfig")) + $root.google.container.v1beta1.NodePool.NodeDrainConfig.encode(message.nodeDrainConfig, writer.uint32(/* id 116, wireType 2 =*/930).fork()).ldelim(); return writer; }; @@ -118122,6 +125515,10 @@ message.bestEffortProvisioning = $root.google.container.v1beta1.BestEffortProvisioning.decode(reader, reader.uint32()); break; } + case 116: { + message.nodeDrainConfig = $root.google.container.v1beta1.NodePool.NodeDrainConfig.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -118264,6 +125661,11 @@ if (error) return "bestEffortProvisioning." + error; } + if (message.nodeDrainConfig != null && message.hasOwnProperty("nodeDrainConfig")) { + var error = $root.google.container.v1beta1.NodePool.NodeDrainConfig.verify(message.nodeDrainConfig); + if (error) + return "nodeDrainConfig." + error; + } return null; }; @@ -118403,6 +125805,11 @@ throw TypeError(".google.container.v1beta1.NodePool.bestEffortProvisioning: object expected"); message.bestEffortProvisioning = $root.google.container.v1beta1.BestEffortProvisioning.fromObject(object.bestEffortProvisioning); } + if (object.nodeDrainConfig != null) { + if (typeof object.nodeDrainConfig !== "object") + throw TypeError(".google.container.v1beta1.NodePool.nodeDrainConfig: object expected"); + message.nodeDrainConfig = $root.google.container.v1beta1.NodePool.NodeDrainConfig.fromObject(object.nodeDrainConfig); + } return message; }; @@ -118443,6 +125850,7 @@ object.etag = ""; object.queuedProvisioning = null; object.bestEffortProvisioning = null; + object.nodeDrainConfig = null; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -118495,6 +125903,8 @@ object.queuedProvisioning = $root.google.container.v1beta1.NodePool.QueuedProvisioning.toObject(message.queuedProvisioning, options); if (message.bestEffortProvisioning != null && message.hasOwnProperty("bestEffortProvisioning")) object.bestEffortProvisioning = $root.google.container.v1beta1.BestEffortProvisioning.toObject(message.bestEffortProvisioning, options); + if (message.nodeDrainConfig != null && message.hasOwnProperty("nodeDrainConfig")) + object.nodeDrainConfig = $root.google.container.v1beta1.NodePool.NodeDrainConfig.toObject(message.nodeDrainConfig, options); return object; }; @@ -118732,6 +126142,7 @@ case 0: case 2: case 3: + case 5: break; } } @@ -118781,6 +126192,10 @@ case 3: message.strategy = 3; break; + case "SHORT_LIVED": + case 5: + message.strategy = 5; + break; } if (object.blueGreenSettings != null) { if (typeof object.blueGreenSettings !== "object") @@ -119991,6 +127406,224 @@ return QueuedProvisioning; })(); + NodePool.NodeDrainConfig = (function() { + + /** + * Properties of a NodeDrainConfig. + * @memberof google.container.v1beta1.NodePool + * @interface INodeDrainConfig + * @property {boolean|null} [respectPdbDuringNodePoolDeletion] NodeDrainConfig respectPdbDuringNodePoolDeletion + */ + + /** + * Constructs a new NodeDrainConfig. + * @memberof google.container.v1beta1.NodePool + * @classdesc Represents a NodeDrainConfig. + * @implements INodeDrainConfig + * @constructor + * @param {google.container.v1beta1.NodePool.INodeDrainConfig=} [properties] Properties to set + */ + function NodeDrainConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * NodeDrainConfig respectPdbDuringNodePoolDeletion. + * @member {boolean|null|undefined} respectPdbDuringNodePoolDeletion + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @instance + */ + NodeDrainConfig.prototype.respectPdbDuringNodePoolDeletion = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(NodeDrainConfig.prototype, "_respectPdbDuringNodePoolDeletion", { + get: $util.oneOfGetter($oneOfFields = ["respectPdbDuringNodePoolDeletion"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new NodeDrainConfig instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {google.container.v1beta1.NodePool.INodeDrainConfig=} [properties] Properties to set + * @returns {google.container.v1beta1.NodePool.NodeDrainConfig} NodeDrainConfig instance + */ + NodeDrainConfig.create = function create(properties) { + return new NodeDrainConfig(properties); + }; + + /** + * Encodes the specified NodeDrainConfig message. Does not implicitly {@link google.container.v1beta1.NodePool.NodeDrainConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {google.container.v1beta1.NodePool.INodeDrainConfig} message NodeDrainConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NodeDrainConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.respectPdbDuringNodePoolDeletion != null && Object.hasOwnProperty.call(message, "respectPdbDuringNodePoolDeletion")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.respectPdbDuringNodePoolDeletion); + return writer; + }; + + /** + * Encodes the specified NodeDrainConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.NodePool.NodeDrainConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {google.container.v1beta1.NodePool.INodeDrainConfig} message NodeDrainConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + NodeDrainConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a NodeDrainConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.NodePool.NodeDrainConfig} NodeDrainConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NodeDrainConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.NodePool.NodeDrainConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 3: { + message.respectPdbDuringNodePoolDeletion = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a NodeDrainConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.NodePool.NodeDrainConfig} NodeDrainConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + NodeDrainConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a NodeDrainConfig message. + * @function verify + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + NodeDrainConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.respectPdbDuringNodePoolDeletion != null && message.hasOwnProperty("respectPdbDuringNodePoolDeletion")) { + properties._respectPdbDuringNodePoolDeletion = 1; + if (typeof message.respectPdbDuringNodePoolDeletion !== "boolean") + return "respectPdbDuringNodePoolDeletion: boolean expected"; + } + return null; + }; + + /** + * Creates a NodeDrainConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.NodePool.NodeDrainConfig} NodeDrainConfig + */ + NodeDrainConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.NodePool.NodeDrainConfig) + return object; + var message = new $root.google.container.v1beta1.NodePool.NodeDrainConfig(); + if (object.respectPdbDuringNodePoolDeletion != null) + message.respectPdbDuringNodePoolDeletion = Boolean(object.respectPdbDuringNodePoolDeletion); + return message; + }; + + /** + * Creates a plain object from a NodeDrainConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {google.container.v1beta1.NodePool.NodeDrainConfig} message NodeDrainConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + NodeDrainConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.respectPdbDuringNodePoolDeletion != null && message.hasOwnProperty("respectPdbDuringNodePoolDeletion")) { + object.respectPdbDuringNodePoolDeletion = message.respectPdbDuringNodePoolDeletion; + if (options.oneofs) + object._respectPdbDuringNodePoolDeletion = "respectPdbDuringNodePoolDeletion"; + } + return object; + }; + + /** + * Converts this NodeDrainConfig to JSON. + * @function toJSON + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @instance + * @returns {Object.} JSON object + */ + NodeDrainConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for NodeDrainConfig + * @function getTypeUrl + * @memberof google.container.v1beta1.NodePool.NodeDrainConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + NodeDrainConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.NodePool.NodeDrainConfig"; + }; + + return NodeDrainConfig; + })(); + return NodePool; })(); @@ -123507,6 +131140,7 @@ * @property {google.container.v1beta1.IAutoprovisioningNodePoolDefaults|null} [autoprovisioningNodePoolDefaults] ClusterAutoscaling autoprovisioningNodePoolDefaults * @property {Array.|null} [autoprovisioningLocations] ClusterAutoscaling autoprovisioningLocations * @property {google.container.v1beta1.IDefaultComputeClassConfig|null} [defaultComputeClassConfig] ClusterAutoscaling defaultComputeClassConfig + * @property {google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile|null} [autopilotGeneralProfile] ClusterAutoscaling autopilotGeneralProfile */ /** @@ -123574,6 +131208,14 @@ */ ClusterAutoscaling.prototype.defaultComputeClassConfig = null; + /** + * ClusterAutoscaling autopilotGeneralProfile. + * @member {google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile} autopilotGeneralProfile + * @memberof google.container.v1beta1.ClusterAutoscaling + * @instance + */ + ClusterAutoscaling.prototype.autopilotGeneralProfile = 0; + /** * Creates a new ClusterAutoscaling instance using the specified properties. * @function create @@ -123612,6 +131254,8 @@ writer.uint32(/* id 5, wireType 2 =*/42).string(message.autoprovisioningLocations[i]); if (message.defaultComputeClassConfig != null && Object.hasOwnProperty.call(message, "defaultComputeClassConfig")) $root.google.container.v1beta1.DefaultComputeClassConfig.encode(message.defaultComputeClassConfig, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.autopilotGeneralProfile != null && Object.hasOwnProperty.call(message, "autopilotGeneralProfile")) + writer.uint32(/* id 14, wireType 0 =*/112).int32(message.autopilotGeneralProfile); return writer; }; @@ -123676,6 +131320,10 @@ message.defaultComputeClassConfig = $root.google.container.v1beta1.DefaultComputeClassConfig.decode(reader, reader.uint32()); break; } + case 14: { + message.autopilotGeneralProfile = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -123749,6 +131397,14 @@ if (error) return "defaultComputeClassConfig." + error; } + if (message.autopilotGeneralProfile != null && message.hasOwnProperty("autopilotGeneralProfile")) + switch (message.autopilotGeneralProfile) { + default: + return "autopilotGeneralProfile: enum value expected"; + case 0: + case 1: + break; + } return null; }; @@ -123813,6 +131469,22 @@ throw TypeError(".google.container.v1beta1.ClusterAutoscaling.defaultComputeClassConfig: object expected"); message.defaultComputeClassConfig = $root.google.container.v1beta1.DefaultComputeClassConfig.fromObject(object.defaultComputeClassConfig); } + switch (object.autopilotGeneralProfile) { + default: + if (typeof object.autopilotGeneralProfile === "number") { + message.autopilotGeneralProfile = object.autopilotGeneralProfile; + break; + } + break; + case "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED": + case 0: + message.autopilotGeneralProfile = 0; + break; + case "NO_PERFORMANCE": + case 1: + message.autopilotGeneralProfile = 1; + break; + } return message; }; @@ -123838,6 +131510,7 @@ object.autoscalingProfile = options.enums === String ? "PROFILE_UNSPECIFIED" : 0; object.autoprovisioningNodePoolDefaults = null; object.defaultComputeClassConfig = null; + object.autopilotGeneralProfile = options.enums === String ? "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED" : 0; } if (message.enableNodeAutoprovisioning != null && message.hasOwnProperty("enableNodeAutoprovisioning")) object.enableNodeAutoprovisioning = message.enableNodeAutoprovisioning; @@ -123857,6 +131530,8 @@ } if (message.defaultComputeClassConfig != null && message.hasOwnProperty("defaultComputeClassConfig")) object.defaultComputeClassConfig = $root.google.container.v1beta1.DefaultComputeClassConfig.toObject(message.defaultComputeClassConfig, options); + if (message.autopilotGeneralProfile != null && message.hasOwnProperty("autopilotGeneralProfile")) + object.autopilotGeneralProfile = options.enums === String ? $root.google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile[message.autopilotGeneralProfile] === undefined ? message.autopilotGeneralProfile : $root.google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile[message.autopilotGeneralProfile] : message.autopilotGeneralProfile; return object; }; @@ -123902,6 +131577,20 @@ return values; })(); + /** + * AutopilotGeneralProfile enum. + * @name google.container.v1beta1.ClusterAutoscaling.AutopilotGeneralProfile + * @enum {number} + * @property {number} AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED=0 AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED value + * @property {number} NO_PERFORMANCE=1 NO_PERFORMANCE value + */ + ClusterAutoscaling.AutopilotGeneralProfile = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED"] = 0; + values[valuesById[1] = "NO_PERFORMANCE"] = 1; + return values; + })(); + return ClusterAutoscaling; })(); @@ -136881,6 +144570,257 @@ return FastSocket; })(); + v1beta1.GPUDirectConfig = (function() { + + /** + * Properties of a GPUDirectConfig. + * @memberof google.container.v1beta1 + * @interface IGPUDirectConfig + * @property {google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|null} [gpuDirectStrategy] GPUDirectConfig gpuDirectStrategy + */ + + /** + * Constructs a new GPUDirectConfig. + * @memberof google.container.v1beta1 + * @classdesc Represents a GPUDirectConfig. + * @implements IGPUDirectConfig + * @constructor + * @param {google.container.v1beta1.IGPUDirectConfig=} [properties] Properties to set + */ + function GPUDirectConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GPUDirectConfig gpuDirectStrategy. + * @member {google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy|null|undefined} gpuDirectStrategy + * @memberof google.container.v1beta1.GPUDirectConfig + * @instance + */ + GPUDirectConfig.prototype.gpuDirectStrategy = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(GPUDirectConfig.prototype, "_gpuDirectStrategy", { + get: $util.oneOfGetter($oneOfFields = ["gpuDirectStrategy"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GPUDirectConfig instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {google.container.v1beta1.IGPUDirectConfig=} [properties] Properties to set + * @returns {google.container.v1beta1.GPUDirectConfig} GPUDirectConfig instance + */ + GPUDirectConfig.create = function create(properties) { + return new GPUDirectConfig(properties); + }; + + /** + * Encodes the specified GPUDirectConfig message. Does not implicitly {@link google.container.v1beta1.GPUDirectConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {google.container.v1beta1.IGPUDirectConfig} message GPUDirectConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GPUDirectConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.gpuDirectStrategy != null && Object.hasOwnProperty.call(message, "gpuDirectStrategy")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.gpuDirectStrategy); + return writer; + }; + + /** + * Encodes the specified GPUDirectConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.GPUDirectConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {google.container.v1beta1.IGPUDirectConfig} message GPUDirectConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GPUDirectConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GPUDirectConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.GPUDirectConfig} GPUDirectConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GPUDirectConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.GPUDirectConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.gpuDirectStrategy = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GPUDirectConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.GPUDirectConfig} GPUDirectConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GPUDirectConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GPUDirectConfig message. + * @function verify + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GPUDirectConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.gpuDirectStrategy != null && message.hasOwnProperty("gpuDirectStrategy")) { + properties._gpuDirectStrategy = 1; + switch (message.gpuDirectStrategy) { + default: + return "gpuDirectStrategy: enum value expected"; + case 0: + case 2: + break; + } + } + return null; + }; + + /** + * Creates a GPUDirectConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.GPUDirectConfig} GPUDirectConfig + */ + GPUDirectConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.GPUDirectConfig) + return object; + var message = new $root.google.container.v1beta1.GPUDirectConfig(); + switch (object.gpuDirectStrategy) { + default: + if (typeof object.gpuDirectStrategy === "number") { + message.gpuDirectStrategy = object.gpuDirectStrategy; + break; + } + break; + case "GPU_DIRECT_STRATEGY_UNSPECIFIED": + case 0: + message.gpuDirectStrategy = 0; + break; + case "RDMA": + case 2: + message.gpuDirectStrategy = 2; + break; + } + return message; + }; + + /** + * Creates a plain object from a GPUDirectConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {google.container.v1beta1.GPUDirectConfig} message GPUDirectConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GPUDirectConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.gpuDirectStrategy != null && message.hasOwnProperty("gpuDirectStrategy")) { + object.gpuDirectStrategy = options.enums === String ? $root.google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy[message.gpuDirectStrategy] === undefined ? message.gpuDirectStrategy : $root.google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy[message.gpuDirectStrategy] : message.gpuDirectStrategy; + if (options.oneofs) + object._gpuDirectStrategy = "gpuDirectStrategy"; + } + return object; + }; + + /** + * Converts this GPUDirectConfig to JSON. + * @function toJSON + * @memberof google.container.v1beta1.GPUDirectConfig + * @instance + * @returns {Object.} JSON object + */ + GPUDirectConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GPUDirectConfig + * @function getTypeUrl + * @memberof google.container.v1beta1.GPUDirectConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GPUDirectConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.GPUDirectConfig"; + }; + + /** + * GPUDirectStrategy enum. + * @name google.container.v1beta1.GPUDirectConfig.GPUDirectStrategy + * @enum {number} + * @property {number} GPU_DIRECT_STRATEGY_UNSPECIFIED=0 GPU_DIRECT_STRATEGY_UNSPECIFIED value + * @property {number} RDMA=2 RDMA value + */ + GPUDirectConfig.GPUDirectStrategy = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "GPU_DIRECT_STRATEGY_UNSPECIFIED"] = 0; + values[valuesById[2] = "RDMA"] = 2; + return values; + })(); + + return GPUDirectConfig; + })(); + v1beta1.GetOpenIDConfigRequest = (function() { /** @@ -139918,6 +147858,7 @@ * Properties of a Master. * @memberof google.container.v1beta1 * @interface IMaster + * @property {google.container.v1beta1.ICompatibilityStatus|null} [compatibilityStatus] Master compatibilityStatus */ /** @@ -139935,6 +147876,14 @@ this[keys[i]] = properties[keys[i]]; } + /** + * Master compatibilityStatus. + * @member {google.container.v1beta1.ICompatibilityStatus|null|undefined} compatibilityStatus + * @memberof google.container.v1beta1.Master + * @instance + */ + Master.prototype.compatibilityStatus = null; + /** * Creates a new Master instance using the specified properties. * @function create @@ -139959,6 +147908,8 @@ Master.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.compatibilityStatus != null && Object.hasOwnProperty.call(message, "compatibilityStatus")) + $root.google.container.v1beta1.CompatibilityStatus.encode(message.compatibilityStatus, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -139995,6 +147946,10 @@ if (tag === error) break; switch (tag >>> 3) { + case 3: { + message.compatibilityStatus = $root.google.container.v1beta1.CompatibilityStatus.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -140030,6 +147985,11 @@ Master.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + if (message.compatibilityStatus != null && message.hasOwnProperty("compatibilityStatus")) { + var error = $root.google.container.v1beta1.CompatibilityStatus.verify(message.compatibilityStatus); + if (error) + return "compatibilityStatus." + error; + } return null; }; @@ -140044,7 +148004,13 @@ Master.fromObject = function fromObject(object) { if (object instanceof $root.google.container.v1beta1.Master) return object; - return new $root.google.container.v1beta1.Master(); + var message = new $root.google.container.v1beta1.Master(); + if (object.compatibilityStatus != null) { + if (typeof object.compatibilityStatus !== "object") + throw TypeError(".google.container.v1beta1.Master.compatibilityStatus: object expected"); + message.compatibilityStatus = $root.google.container.v1beta1.CompatibilityStatus.fromObject(object.compatibilityStatus); + } + return message; }; /** @@ -140056,8 +148022,15 @@ * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Master.toObject = function toObject() { - return {}; + Master.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.compatibilityStatus = null; + if (message.compatibilityStatus != null && message.hasOwnProperty("compatibilityStatus")) + object.compatibilityStatus = $root.google.container.v1beta1.CompatibilityStatus.toObject(message.compatibilityStatus, options); + return object; }; /** @@ -140089,6 +148062,450 @@ return Master; })(); + v1beta1.CompatibilityStatus = (function() { + + /** + * Properties of a CompatibilityStatus. + * @memberof google.container.v1beta1 + * @interface ICompatibilityStatus + * @property {string|null} [downgradableVersion] CompatibilityStatus downgradableVersion + * @property {google.protobuf.ITimestamp|null} [emulatedVersionTime] CompatibilityStatus emulatedVersionTime + */ + + /** + * Constructs a new CompatibilityStatus. + * @memberof google.container.v1beta1 + * @classdesc Represents a CompatibilityStatus. + * @implements ICompatibilityStatus + * @constructor + * @param {google.container.v1beta1.ICompatibilityStatus=} [properties] Properties to set + */ + function CompatibilityStatus(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CompatibilityStatus downgradableVersion. + * @member {string} downgradableVersion + * @memberof google.container.v1beta1.CompatibilityStatus + * @instance + */ + CompatibilityStatus.prototype.downgradableVersion = ""; + + /** + * CompatibilityStatus emulatedVersionTime. + * @member {google.protobuf.ITimestamp|null|undefined} emulatedVersionTime + * @memberof google.container.v1beta1.CompatibilityStatus + * @instance + */ + CompatibilityStatus.prototype.emulatedVersionTime = null; + + /** + * Creates a new CompatibilityStatus instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {google.container.v1beta1.ICompatibilityStatus=} [properties] Properties to set + * @returns {google.container.v1beta1.CompatibilityStatus} CompatibilityStatus instance + */ + CompatibilityStatus.create = function create(properties) { + return new CompatibilityStatus(properties); + }; + + /** + * Encodes the specified CompatibilityStatus message. Does not implicitly {@link google.container.v1beta1.CompatibilityStatus.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {google.container.v1beta1.ICompatibilityStatus} message CompatibilityStatus message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CompatibilityStatus.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.downgradableVersion != null && Object.hasOwnProperty.call(message, "downgradableVersion")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.downgradableVersion); + if (message.emulatedVersionTime != null && Object.hasOwnProperty.call(message, "emulatedVersionTime")) + $root.google.protobuf.Timestamp.encode(message.emulatedVersionTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CompatibilityStatus message, length delimited. Does not implicitly {@link google.container.v1beta1.CompatibilityStatus.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {google.container.v1beta1.ICompatibilityStatus} message CompatibilityStatus message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CompatibilityStatus.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CompatibilityStatus message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.CompatibilityStatus} CompatibilityStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CompatibilityStatus.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.CompatibilityStatus(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.downgradableVersion = reader.string(); + break; + } + case 3: { + message.emulatedVersionTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CompatibilityStatus message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.CompatibilityStatus} CompatibilityStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CompatibilityStatus.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CompatibilityStatus message. + * @function verify + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CompatibilityStatus.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.downgradableVersion != null && message.hasOwnProperty("downgradableVersion")) + if (!$util.isString(message.downgradableVersion)) + return "downgradableVersion: string expected"; + if (message.emulatedVersionTime != null && message.hasOwnProperty("emulatedVersionTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.emulatedVersionTime); + if (error) + return "emulatedVersionTime." + error; + } + return null; + }; + + /** + * Creates a CompatibilityStatus message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.CompatibilityStatus} CompatibilityStatus + */ + CompatibilityStatus.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.CompatibilityStatus) + return object; + var message = new $root.google.container.v1beta1.CompatibilityStatus(); + if (object.downgradableVersion != null) + message.downgradableVersion = String(object.downgradableVersion); + if (object.emulatedVersionTime != null) { + if (typeof object.emulatedVersionTime !== "object") + throw TypeError(".google.container.v1beta1.CompatibilityStatus.emulatedVersionTime: object expected"); + message.emulatedVersionTime = $root.google.protobuf.Timestamp.fromObject(object.emulatedVersionTime); + } + return message; + }; + + /** + * Creates a plain object from a CompatibilityStatus message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {google.container.v1beta1.CompatibilityStatus} message CompatibilityStatus + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CompatibilityStatus.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.downgradableVersion = ""; + object.emulatedVersionTime = null; + } + if (message.downgradableVersion != null && message.hasOwnProperty("downgradableVersion")) + object.downgradableVersion = message.downgradableVersion; + if (message.emulatedVersionTime != null && message.hasOwnProperty("emulatedVersionTime")) + object.emulatedVersionTime = $root.google.protobuf.Timestamp.toObject(message.emulatedVersionTime, options); + return object; + }; + + /** + * Converts this CompatibilityStatus to JSON. + * @function toJSON + * @memberof google.container.v1beta1.CompatibilityStatus + * @instance + * @returns {Object.} JSON object + */ + CompatibilityStatus.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CompatibilityStatus + * @function getTypeUrl + * @memberof google.container.v1beta1.CompatibilityStatus + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CompatibilityStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.CompatibilityStatus"; + }; + + return CompatibilityStatus; + })(); + + v1beta1.RollbackSafeUpgrade = (function() { + + /** + * Properties of a RollbackSafeUpgrade. + * @memberof google.container.v1beta1 + * @interface IRollbackSafeUpgrade + * @property {google.protobuf.IDuration|null} [controlPlaneSoakDuration] RollbackSafeUpgrade controlPlaneSoakDuration + */ + + /** + * Constructs a new RollbackSafeUpgrade. + * @memberof google.container.v1beta1 + * @classdesc Represents a RollbackSafeUpgrade. + * @implements IRollbackSafeUpgrade + * @constructor + * @param {google.container.v1beta1.IRollbackSafeUpgrade=} [properties] Properties to set + */ + function RollbackSafeUpgrade(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RollbackSafeUpgrade controlPlaneSoakDuration. + * @member {google.protobuf.IDuration|null|undefined} controlPlaneSoakDuration + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @instance + */ + RollbackSafeUpgrade.prototype.controlPlaneSoakDuration = null; + + /** + * Creates a new RollbackSafeUpgrade instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {google.container.v1beta1.IRollbackSafeUpgrade=} [properties] Properties to set + * @returns {google.container.v1beta1.RollbackSafeUpgrade} RollbackSafeUpgrade instance + */ + RollbackSafeUpgrade.create = function create(properties) { + return new RollbackSafeUpgrade(properties); + }; + + /** + * Encodes the specified RollbackSafeUpgrade message. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgrade.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {google.container.v1beta1.IRollbackSafeUpgrade} message RollbackSafeUpgrade message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RollbackSafeUpgrade.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.controlPlaneSoakDuration != null && Object.hasOwnProperty.call(message, "controlPlaneSoakDuration")) + $root.google.protobuf.Duration.encode(message.controlPlaneSoakDuration, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified RollbackSafeUpgrade message, length delimited. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgrade.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {google.container.v1beta1.IRollbackSafeUpgrade} message RollbackSafeUpgrade message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RollbackSafeUpgrade.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RollbackSafeUpgrade message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.RollbackSafeUpgrade} RollbackSafeUpgrade + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RollbackSafeUpgrade.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.RollbackSafeUpgrade(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.controlPlaneSoakDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RollbackSafeUpgrade message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.RollbackSafeUpgrade} RollbackSafeUpgrade + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RollbackSafeUpgrade.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RollbackSafeUpgrade message. + * @function verify + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RollbackSafeUpgrade.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.controlPlaneSoakDuration != null && message.hasOwnProperty("controlPlaneSoakDuration")) { + var error = $root.google.protobuf.Duration.verify(message.controlPlaneSoakDuration); + if (error) + return "controlPlaneSoakDuration." + error; + } + return null; + }; + + /** + * Creates a RollbackSafeUpgrade message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.RollbackSafeUpgrade} RollbackSafeUpgrade + */ + RollbackSafeUpgrade.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.RollbackSafeUpgrade) + return object; + var message = new $root.google.container.v1beta1.RollbackSafeUpgrade(); + if (object.controlPlaneSoakDuration != null) { + if (typeof object.controlPlaneSoakDuration !== "object") + throw TypeError(".google.container.v1beta1.RollbackSafeUpgrade.controlPlaneSoakDuration: object expected"); + message.controlPlaneSoakDuration = $root.google.protobuf.Duration.fromObject(object.controlPlaneSoakDuration); + } + return message; + }; + + /** + * Creates a plain object from a RollbackSafeUpgrade message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {google.container.v1beta1.RollbackSafeUpgrade} message RollbackSafeUpgrade + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RollbackSafeUpgrade.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.controlPlaneSoakDuration = null; + if (message.controlPlaneSoakDuration != null && message.hasOwnProperty("controlPlaneSoakDuration")) + object.controlPlaneSoakDuration = $root.google.protobuf.Duration.toObject(message.controlPlaneSoakDuration, options); + return object; + }; + + /** + * Converts this RollbackSafeUpgrade to JSON. + * @function toJSON + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @instance + * @returns {Object.} JSON object + */ + RollbackSafeUpgrade.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RollbackSafeUpgrade + * @function getTypeUrl + * @memberof google.container.v1beta1.RollbackSafeUpgrade + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RollbackSafeUpgrade.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.RollbackSafeUpgrade"; + }; + + return RollbackSafeUpgrade; + })(); + v1beta1.AutopilotConversionStatus = (function() { /** @@ -142547,6 +150964,7 @@ * @property {google.protobuf.ITimestamp|null} [extendedSupportEndTime] UpgradeInfoEvent extendedSupportEndTime * @property {string|null} [description] UpgradeInfoEvent description * @property {google.container.v1beta1.UpgradeInfoEvent.EventType|null} [eventType] UpgradeInfoEvent eventType + * @property {google.container.v1beta1.IDisruptionEvent|null} [disruptionEvent] UpgradeInfoEvent disruptionEvent */ /** @@ -142676,6 +151094,14 @@ */ UpgradeInfoEvent.prototype.eventType = 0; + /** + * UpgradeInfoEvent disruptionEvent. + * @member {google.container.v1beta1.IDisruptionEvent|null|undefined} disruptionEvent + * @memberof google.container.v1beta1.UpgradeInfoEvent + * @instance + */ + UpgradeInfoEvent.prototype.disruptionEvent = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -142691,6 +151117,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(UpgradeInfoEvent.prototype, "_disruptionEvent", { + get: $util.oneOfGetter($oneOfFields = ["disruptionEvent"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new UpgradeInfoEvent instance using the specified properties. * @function create @@ -142739,6 +151171,8 @@ writer.uint32(/* id 11, wireType 2 =*/90).string(message.description); if (message.eventType != null && Object.hasOwnProperty.call(message, "eventType")) writer.uint32(/* id 12, wireType 0 =*/96).int32(message.eventType); + if (message.disruptionEvent != null && Object.hasOwnProperty.call(message, "disruptionEvent")) + $root.google.container.v1beta1.DisruptionEvent.encode(message.disruptionEvent, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); if (message.currentEmulatedVersion != null && Object.hasOwnProperty.call(message, "currentEmulatedVersion")) writer.uint32(/* id 15, wireType 2 =*/122).string(message.currentEmulatedVersion); if (message.targetEmulatedVersion != null && Object.hasOwnProperty.call(message, "targetEmulatedVersion")) @@ -142835,6 +151269,10 @@ message.eventType = reader.int32(); break; } + case 14: { + message.disruptionEvent = $root.google.container.v1beta1.DisruptionEvent.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -142946,8 +151384,17 @@ case 1: case 2: case 3: + case 4: break; } + if (message.disruptionEvent != null && message.hasOwnProperty("disruptionEvent")) { + properties._disruptionEvent = 1; + { + var error = $root.google.container.v1beta1.DisruptionEvent.verify(message.disruptionEvent); + if (error) + return "disruptionEvent." + error; + } + } return null; }; @@ -143068,6 +151515,15 @@ case 3: message.eventType = 3; break; + case "DISRUPTION_EVENT": + case 4: + message.eventType = 4; + break; + } + if (object.disruptionEvent != null) { + if (typeof object.disruptionEvent !== "object") + throw TypeError(".google.container.v1beta1.UpgradeInfoEvent.disruptionEvent: object expected"); + message.disruptionEvent = $root.google.container.v1beta1.DisruptionEvent.fromObject(object.disruptionEvent); } return message; }; @@ -143129,6 +151585,11 @@ object.description = message.description; if (message.eventType != null && message.hasOwnProperty("eventType")) object.eventType = options.enums === String ? $root.google.container.v1beta1.UpgradeInfoEvent.EventType[message.eventType] === undefined ? message.eventType : $root.google.container.v1beta1.UpgradeInfoEvent.EventType[message.eventType] : message.eventType; + if (message.disruptionEvent != null && message.hasOwnProperty("disruptionEvent")) { + object.disruptionEvent = $root.google.container.v1beta1.DisruptionEvent.toObject(message.disruptionEvent, options); + if (options.oneofs) + object._disruptionEvent = "disruptionEvent"; + } if (message.currentEmulatedVersion != null && message.hasOwnProperty("currentEmulatedVersion")) object.currentEmulatedVersion = message.currentEmulatedVersion; if (message.targetEmulatedVersion != null && message.hasOwnProperty("targetEmulatedVersion")) @@ -143190,6 +151651,7 @@ * @property {number} END_OF_SUPPORT=1 END_OF_SUPPORT value * @property {number} COS_MILESTONE_VERSION_UPDATE=2 COS_MILESTONE_VERSION_UPDATE value * @property {number} UPGRADE_LIFECYCLE=3 UPGRADE_LIFECYCLE value + * @property {number} DISRUPTION_EVENT=4 DISRUPTION_EVENT value */ UpgradeInfoEvent.EventType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -143197,12 +151659,599 @@ values[valuesById[1] = "END_OF_SUPPORT"] = 1; values[valuesById[2] = "COS_MILESTONE_VERSION_UPDATE"] = 2; values[valuesById[3] = "UPGRADE_LIFECYCLE"] = 3; + values[valuesById[4] = "DISRUPTION_EVENT"] = 4; return values; })(); return UpgradeInfoEvent; })(); + v1beta1.DisruptionEvent = (function() { + + /** + * Properties of a DisruptionEvent. + * @memberof google.container.v1beta1 + * @interface IDisruptionEvent + * @property {google.container.v1beta1.DisruptionEvent.DisruptionType|null} [disruptionType] DisruptionEvent disruptionType + * @property {string|null} [pdbBlockedNode] DisruptionEvent pdbBlockedNode + * @property {Array.|null} [pdbBlockedPod] DisruptionEvent pdbBlockedPod + * @property {google.protobuf.IDuration|null} [pdbViolationTimeout] DisruptionEvent pdbViolationTimeout + */ + + /** + * Constructs a new DisruptionEvent. + * @memberof google.container.v1beta1 + * @classdesc Represents a DisruptionEvent. + * @implements IDisruptionEvent + * @constructor + * @param {google.container.v1beta1.IDisruptionEvent=} [properties] Properties to set + */ + function DisruptionEvent(properties) { + this.pdbBlockedPod = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DisruptionEvent disruptionType. + * @member {google.container.v1beta1.DisruptionEvent.DisruptionType} disruptionType + * @memberof google.container.v1beta1.DisruptionEvent + * @instance + */ + DisruptionEvent.prototype.disruptionType = 0; + + /** + * DisruptionEvent pdbBlockedNode. + * @member {string} pdbBlockedNode + * @memberof google.container.v1beta1.DisruptionEvent + * @instance + */ + DisruptionEvent.prototype.pdbBlockedNode = ""; + + /** + * DisruptionEvent pdbBlockedPod. + * @member {Array.} pdbBlockedPod + * @memberof google.container.v1beta1.DisruptionEvent + * @instance + */ + DisruptionEvent.prototype.pdbBlockedPod = $util.emptyArray; + + /** + * DisruptionEvent pdbViolationTimeout. + * @member {google.protobuf.IDuration|null|undefined} pdbViolationTimeout + * @memberof google.container.v1beta1.DisruptionEvent + * @instance + */ + DisruptionEvent.prototype.pdbViolationTimeout = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(DisruptionEvent.prototype, "_pdbViolationTimeout", { + get: $util.oneOfGetter($oneOfFields = ["pdbViolationTimeout"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new DisruptionEvent instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {google.container.v1beta1.IDisruptionEvent=} [properties] Properties to set + * @returns {google.container.v1beta1.DisruptionEvent} DisruptionEvent instance + */ + DisruptionEvent.create = function create(properties) { + return new DisruptionEvent(properties); + }; + + /** + * Encodes the specified DisruptionEvent message. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {google.container.v1beta1.IDisruptionEvent} message DisruptionEvent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DisruptionEvent.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.disruptionType != null && Object.hasOwnProperty.call(message, "disruptionType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.disruptionType); + if (message.pdbBlockedNode != null && Object.hasOwnProperty.call(message, "pdbBlockedNode")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.pdbBlockedNode); + if (message.pdbBlockedPod != null && message.pdbBlockedPod.length) + for (var i = 0; i < message.pdbBlockedPod.length; ++i) + $root.google.container.v1beta1.DisruptionEvent.PdbBlockedPod.encode(message.pdbBlockedPod[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.pdbViolationTimeout != null && Object.hasOwnProperty.call(message, "pdbViolationTimeout")) + $root.google.protobuf.Duration.encode(message.pdbViolationTimeout, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DisruptionEvent message, length delimited. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {google.container.v1beta1.IDisruptionEvent} message DisruptionEvent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DisruptionEvent.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DisruptionEvent message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.DisruptionEvent} DisruptionEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DisruptionEvent.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.DisruptionEvent(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.disruptionType = reader.int32(); + break; + } + case 2: { + message.pdbBlockedNode = reader.string(); + break; + } + case 3: { + if (!(message.pdbBlockedPod && message.pdbBlockedPod.length)) + message.pdbBlockedPod = []; + message.pdbBlockedPod.push($root.google.container.v1beta1.DisruptionEvent.PdbBlockedPod.decode(reader, reader.uint32())); + break; + } + case 4: { + message.pdbViolationTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DisruptionEvent message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.DisruptionEvent} DisruptionEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DisruptionEvent.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DisruptionEvent message. + * @function verify + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DisruptionEvent.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.disruptionType != null && message.hasOwnProperty("disruptionType")) + switch (message.disruptionType) { + default: + return "disruptionType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.pdbBlockedNode != null && message.hasOwnProperty("pdbBlockedNode")) + if (!$util.isString(message.pdbBlockedNode)) + return "pdbBlockedNode: string expected"; + if (message.pdbBlockedPod != null && message.hasOwnProperty("pdbBlockedPod")) { + if (!Array.isArray(message.pdbBlockedPod)) + return "pdbBlockedPod: array expected"; + for (var i = 0; i < message.pdbBlockedPod.length; ++i) { + var error = $root.google.container.v1beta1.DisruptionEvent.PdbBlockedPod.verify(message.pdbBlockedPod[i]); + if (error) + return "pdbBlockedPod." + error; + } + } + if (message.pdbViolationTimeout != null && message.hasOwnProperty("pdbViolationTimeout")) { + properties._pdbViolationTimeout = 1; + { + var error = $root.google.protobuf.Duration.verify(message.pdbViolationTimeout); + if (error) + return "pdbViolationTimeout." + error; + } + } + return null; + }; + + /** + * Creates a DisruptionEvent message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.DisruptionEvent} DisruptionEvent + */ + DisruptionEvent.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.DisruptionEvent) + return object; + var message = new $root.google.container.v1beta1.DisruptionEvent(); + switch (object.disruptionType) { + default: + if (typeof object.disruptionType === "number") { + message.disruptionType = object.disruptionType; + break; + } + break; + case "DISRUPTION_TYPE_UNSPECIFIED": + case 0: + message.disruptionType = 0; + break; + case "POD_NOT_ENOUGH_PDB": + case 1: + message.disruptionType = 1; + break; + case "POD_PDB_VIOLATION": + case 2: + message.disruptionType = 2; + break; + } + if (object.pdbBlockedNode != null) + message.pdbBlockedNode = String(object.pdbBlockedNode); + if (object.pdbBlockedPod) { + if (!Array.isArray(object.pdbBlockedPod)) + throw TypeError(".google.container.v1beta1.DisruptionEvent.pdbBlockedPod: array expected"); + message.pdbBlockedPod = []; + for (var i = 0; i < object.pdbBlockedPod.length; ++i) { + if (typeof object.pdbBlockedPod[i] !== "object") + throw TypeError(".google.container.v1beta1.DisruptionEvent.pdbBlockedPod: object expected"); + message.pdbBlockedPod[i] = $root.google.container.v1beta1.DisruptionEvent.PdbBlockedPod.fromObject(object.pdbBlockedPod[i]); + } + } + if (object.pdbViolationTimeout != null) { + if (typeof object.pdbViolationTimeout !== "object") + throw TypeError(".google.container.v1beta1.DisruptionEvent.pdbViolationTimeout: object expected"); + message.pdbViolationTimeout = $root.google.protobuf.Duration.fromObject(object.pdbViolationTimeout); + } + return message; + }; + + /** + * Creates a plain object from a DisruptionEvent message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {google.container.v1beta1.DisruptionEvent} message DisruptionEvent + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DisruptionEvent.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.pdbBlockedPod = []; + if (options.defaults) { + object.disruptionType = options.enums === String ? "DISRUPTION_TYPE_UNSPECIFIED" : 0; + object.pdbBlockedNode = ""; + } + if (message.disruptionType != null && message.hasOwnProperty("disruptionType")) + object.disruptionType = options.enums === String ? $root.google.container.v1beta1.DisruptionEvent.DisruptionType[message.disruptionType] === undefined ? message.disruptionType : $root.google.container.v1beta1.DisruptionEvent.DisruptionType[message.disruptionType] : message.disruptionType; + if (message.pdbBlockedNode != null && message.hasOwnProperty("pdbBlockedNode")) + object.pdbBlockedNode = message.pdbBlockedNode; + if (message.pdbBlockedPod && message.pdbBlockedPod.length) { + object.pdbBlockedPod = []; + for (var j = 0; j < message.pdbBlockedPod.length; ++j) + object.pdbBlockedPod[j] = $root.google.container.v1beta1.DisruptionEvent.PdbBlockedPod.toObject(message.pdbBlockedPod[j], options); + } + if (message.pdbViolationTimeout != null && message.hasOwnProperty("pdbViolationTimeout")) { + object.pdbViolationTimeout = $root.google.protobuf.Duration.toObject(message.pdbViolationTimeout, options); + if (options.oneofs) + object._pdbViolationTimeout = "pdbViolationTimeout"; + } + return object; + }; + + /** + * Converts this DisruptionEvent to JSON. + * @function toJSON + * @memberof google.container.v1beta1.DisruptionEvent + * @instance + * @returns {Object.} JSON object + */ + DisruptionEvent.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DisruptionEvent + * @function getTypeUrl + * @memberof google.container.v1beta1.DisruptionEvent + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DisruptionEvent.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.DisruptionEvent"; + }; + + /** + * DisruptionType enum. + * @name google.container.v1beta1.DisruptionEvent.DisruptionType + * @enum {number} + * @property {number} DISRUPTION_TYPE_UNSPECIFIED=0 DISRUPTION_TYPE_UNSPECIFIED value + * @property {number} POD_NOT_ENOUGH_PDB=1 POD_NOT_ENOUGH_PDB value + * @property {number} POD_PDB_VIOLATION=2 POD_PDB_VIOLATION value + */ + DisruptionEvent.DisruptionType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "DISRUPTION_TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "POD_NOT_ENOUGH_PDB"] = 1; + values[valuesById[2] = "POD_PDB_VIOLATION"] = 2; + return values; + })(); + + DisruptionEvent.PdbBlockedPod = (function() { + + /** + * Properties of a PdbBlockedPod. + * @memberof google.container.v1beta1.DisruptionEvent + * @interface IPdbBlockedPod + * @property {string|null} [namespace] PdbBlockedPod namespace + * @property {string|null} [name] PdbBlockedPod name + */ + + /** + * Constructs a new PdbBlockedPod. + * @memberof google.container.v1beta1.DisruptionEvent + * @classdesc Represents a PdbBlockedPod. + * @implements IPdbBlockedPod + * @constructor + * @param {google.container.v1beta1.DisruptionEvent.IPdbBlockedPod=} [properties] Properties to set + */ + function PdbBlockedPod(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PdbBlockedPod namespace. + * @member {string} namespace + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @instance + */ + PdbBlockedPod.prototype.namespace = ""; + + /** + * PdbBlockedPod name. + * @member {string} name + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @instance + */ + PdbBlockedPod.prototype.name = ""; + + /** + * Creates a new PdbBlockedPod instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {google.container.v1beta1.DisruptionEvent.IPdbBlockedPod=} [properties] Properties to set + * @returns {google.container.v1beta1.DisruptionEvent.PdbBlockedPod} PdbBlockedPod instance + */ + PdbBlockedPod.create = function create(properties) { + return new PdbBlockedPod(properties); + }; + + /** + * Encodes the specified PdbBlockedPod message. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.PdbBlockedPod.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {google.container.v1beta1.DisruptionEvent.IPdbBlockedPod} message PdbBlockedPod message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PdbBlockedPod.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.namespace != null && Object.hasOwnProperty.call(message, "namespace")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.namespace); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.name); + return writer; + }; + + /** + * Encodes the specified PdbBlockedPod message, length delimited. Does not implicitly {@link google.container.v1beta1.DisruptionEvent.PdbBlockedPod.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {google.container.v1beta1.DisruptionEvent.IPdbBlockedPod} message PdbBlockedPod message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PdbBlockedPod.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PdbBlockedPod message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.DisruptionEvent.PdbBlockedPod} PdbBlockedPod + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PdbBlockedPod.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.DisruptionEvent.PdbBlockedPod(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.namespace = reader.string(); + break; + } + case 2: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PdbBlockedPod message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.DisruptionEvent.PdbBlockedPod} PdbBlockedPod + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PdbBlockedPod.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PdbBlockedPod message. + * @function verify + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PdbBlockedPod.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.namespace != null && message.hasOwnProperty("namespace")) + if (!$util.isString(message.namespace)) + return "namespace: string expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a PdbBlockedPod message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.DisruptionEvent.PdbBlockedPod} PdbBlockedPod + */ + PdbBlockedPod.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.DisruptionEvent.PdbBlockedPod) + return object; + var message = new $root.google.container.v1beta1.DisruptionEvent.PdbBlockedPod(); + if (object.namespace != null) + message.namespace = String(object.namespace); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a PdbBlockedPod message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {google.container.v1beta1.DisruptionEvent.PdbBlockedPod} message PdbBlockedPod + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PdbBlockedPod.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.namespace = ""; + object.name = ""; + } + if (message.namespace != null && message.hasOwnProperty("namespace")) + object.namespace = message.namespace; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this PdbBlockedPod to JSON. + * @function toJSON + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @instance + * @returns {Object.} JSON object + */ + PdbBlockedPod.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PdbBlockedPod + * @function getTypeUrl + * @memberof google.container.v1beta1.DisruptionEvent.PdbBlockedPod + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PdbBlockedPod.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.DisruptionEvent.PdbBlockedPod"; + }; + + return PdbBlockedPod; + })(); + + return DisruptionEvent; + })(); + v1beta1.UpgradeAvailableEvent = (function() { /** @@ -144249,12 +153298,14 @@ * @property {number} NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED=0 NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED value * @property {number} BLUE_GREEN=2 BLUE_GREEN value * @property {number} SURGE=3 SURGE value + * @property {number} SHORT_LIVED=5 SHORT_LIVED value */ v1beta1.NodePoolUpdateStrategy = (function() { var valuesById = {}, values = Object.create(valuesById); values[valuesById[0] = "NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED"] = 0; values[valuesById[2] = "BLUE_GREEN"] = 2; values[valuesById[3] = "SURGE"] = 3; + values[valuesById[5] = "SHORT_LIVED"] = 5; return values; })(); @@ -150173,6 +159224,7 @@ * @property {Array.|null} [upgradeDetails] ClusterUpgradeInfo upgradeDetails * @property {string|null} [endOfStandardSupportTimestamp] ClusterUpgradeInfo endOfStandardSupportTimestamp * @property {string|null} [endOfExtendedSupportTimestamp] ClusterUpgradeInfo endOfExtendedSupportTimestamp + * @property {google.container.v1beta1.IRollbackSafeUpgradeStatus|null} [rollbackSafeUpgradeStatus] ClusterUpgradeInfo rollbackSafeUpgradeStatus */ /** @@ -150249,6 +159301,14 @@ */ ClusterUpgradeInfo.prototype.endOfExtendedSupportTimestamp = null; + /** + * ClusterUpgradeInfo rollbackSafeUpgradeStatus. + * @member {google.container.v1beta1.IRollbackSafeUpgradeStatus|null|undefined} rollbackSafeUpgradeStatus + * @memberof google.container.v1beta1.ClusterUpgradeInfo + * @instance + */ + ClusterUpgradeInfo.prototype.rollbackSafeUpgradeStatus = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -150323,6 +159383,8 @@ writer.uint32(/* id 7, wireType 2 =*/58).string(message.minorTargetVersion); if (message.patchTargetVersion != null && Object.hasOwnProperty.call(message, "patchTargetVersion")) writer.uint32(/* id 8, wireType 2 =*/66).string(message.patchTargetVersion); + if (message.rollbackSafeUpgradeStatus != null && Object.hasOwnProperty.call(message, "rollbackSafeUpgradeStatus")) + $root.google.container.v1beta1.RollbackSafeUpgradeStatus.encode(message.rollbackSafeUpgradeStatus, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); return writer; }; @@ -150403,6 +159465,10 @@ message.endOfExtendedSupportTimestamp = reader.string(); break; } + case 9: { + message.rollbackSafeUpgradeStatus = $root.google.container.v1beta1.RollbackSafeUpgradeStatus.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -150499,6 +159565,11 @@ if (!$util.isString(message.endOfExtendedSupportTimestamp)) return "endOfExtendedSupportTimestamp: string expected"; } + if (message.rollbackSafeUpgradeStatus != null && message.hasOwnProperty("rollbackSafeUpgradeStatus")) { + var error = $root.google.container.v1beta1.RollbackSafeUpgradeStatus.verify(message.rollbackSafeUpgradeStatus); + if (error) + return "rollbackSafeUpgradeStatus." + error; + } return null; }; @@ -150602,6 +159673,11 @@ message.endOfStandardSupportTimestamp = String(object.endOfStandardSupportTimestamp); if (object.endOfExtendedSupportTimestamp != null) message.endOfExtendedSupportTimestamp = String(object.endOfExtendedSupportTimestamp); + if (object.rollbackSafeUpgradeStatus != null) { + if (typeof object.rollbackSafeUpgradeStatus !== "object") + throw TypeError(".google.container.v1beta1.ClusterUpgradeInfo.rollbackSafeUpgradeStatus: object expected"); + message.rollbackSafeUpgradeStatus = $root.google.container.v1beta1.RollbackSafeUpgradeStatus.fromObject(object.rollbackSafeUpgradeStatus); + } return message; }; @@ -150623,6 +159699,8 @@ object.pausedReason = []; object.upgradeDetails = []; } + if (options.defaults) + object.rollbackSafeUpgradeStatus = null; if (message.autoUpgradeStatus && message.autoUpgradeStatus.length) { object.autoUpgradeStatus = []; for (var j = 0; j < message.autoUpgradeStatus.length; ++j) @@ -150658,6 +159736,8 @@ if (options.oneofs) object._patchTargetVersion = "patchTargetVersion"; } + if (message.rollbackSafeUpgradeStatus != null && message.hasOwnProperty("rollbackSafeUpgradeStatus")) + object.rollbackSafeUpgradeStatus = $root.google.container.v1beta1.RollbackSafeUpgradeStatus.toObject(message.rollbackSafeUpgradeStatus, options); return object; }; @@ -150732,6 +159812,296 @@ return ClusterUpgradeInfo; })(); + v1beta1.RollbackSafeUpgradeStatus = (function() { + + /** + * Properties of a RollbackSafeUpgradeStatus. + * @memberof google.container.v1beta1 + * @interface IRollbackSafeUpgradeStatus + * @property {google.container.v1beta1.RollbackSafeUpgradeStatus.Mode|null} [mode] RollbackSafeUpgradeStatus mode + * @property {google.protobuf.ITimestamp|null} [controlPlaneUpgradeRollbackEndTime] RollbackSafeUpgradeStatus controlPlaneUpgradeRollbackEndTime + * @property {string|null} [previousVersion] RollbackSafeUpgradeStatus previousVersion + */ + + /** + * Constructs a new RollbackSafeUpgradeStatus. + * @memberof google.container.v1beta1 + * @classdesc Represents a RollbackSafeUpgradeStatus. + * @implements IRollbackSafeUpgradeStatus + * @constructor + * @param {google.container.v1beta1.IRollbackSafeUpgradeStatus=} [properties] Properties to set + */ + function RollbackSafeUpgradeStatus(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RollbackSafeUpgradeStatus mode. + * @member {google.container.v1beta1.RollbackSafeUpgradeStatus.Mode} mode + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @instance + */ + RollbackSafeUpgradeStatus.prototype.mode = 0; + + /** + * RollbackSafeUpgradeStatus controlPlaneUpgradeRollbackEndTime. + * @member {google.protobuf.ITimestamp|null|undefined} controlPlaneUpgradeRollbackEndTime + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @instance + */ + RollbackSafeUpgradeStatus.prototype.controlPlaneUpgradeRollbackEndTime = null; + + /** + * RollbackSafeUpgradeStatus previousVersion. + * @member {string} previousVersion + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @instance + */ + RollbackSafeUpgradeStatus.prototype.previousVersion = ""; + + /** + * Creates a new RollbackSafeUpgradeStatus instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {google.container.v1beta1.IRollbackSafeUpgradeStatus=} [properties] Properties to set + * @returns {google.container.v1beta1.RollbackSafeUpgradeStatus} RollbackSafeUpgradeStatus instance + */ + RollbackSafeUpgradeStatus.create = function create(properties) { + return new RollbackSafeUpgradeStatus(properties); + }; + + /** + * Encodes the specified RollbackSafeUpgradeStatus message. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgradeStatus.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {google.container.v1beta1.IRollbackSafeUpgradeStatus} message RollbackSafeUpgradeStatus message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RollbackSafeUpgradeStatus.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.mode != null && Object.hasOwnProperty.call(message, "mode")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.mode); + if (message.controlPlaneUpgradeRollbackEndTime != null && Object.hasOwnProperty.call(message, "controlPlaneUpgradeRollbackEndTime")) + $root.google.protobuf.Timestamp.encode(message.controlPlaneUpgradeRollbackEndTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.previousVersion != null && Object.hasOwnProperty.call(message, "previousVersion")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.previousVersion); + return writer; + }; + + /** + * Encodes the specified RollbackSafeUpgradeStatus message, length delimited. Does not implicitly {@link google.container.v1beta1.RollbackSafeUpgradeStatus.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {google.container.v1beta1.IRollbackSafeUpgradeStatus} message RollbackSafeUpgradeStatus message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RollbackSafeUpgradeStatus.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RollbackSafeUpgradeStatus message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.RollbackSafeUpgradeStatus} RollbackSafeUpgradeStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RollbackSafeUpgradeStatus.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.RollbackSafeUpgradeStatus(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.mode = reader.int32(); + break; + } + case 2: { + message.controlPlaneUpgradeRollbackEndTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 3: { + message.previousVersion = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RollbackSafeUpgradeStatus message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.RollbackSafeUpgradeStatus} RollbackSafeUpgradeStatus + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RollbackSafeUpgradeStatus.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RollbackSafeUpgradeStatus message. + * @function verify + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RollbackSafeUpgradeStatus.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.mode != null && message.hasOwnProperty("mode")) + switch (message.mode) { + default: + return "mode: enum value expected"; + case 0: + case 1: + break; + } + if (message.controlPlaneUpgradeRollbackEndTime != null && message.hasOwnProperty("controlPlaneUpgradeRollbackEndTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.controlPlaneUpgradeRollbackEndTime); + if (error) + return "controlPlaneUpgradeRollbackEndTime." + error; + } + if (message.previousVersion != null && message.hasOwnProperty("previousVersion")) + if (!$util.isString(message.previousVersion)) + return "previousVersion: string expected"; + return null; + }; + + /** + * Creates a RollbackSafeUpgradeStatus message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.RollbackSafeUpgradeStatus} RollbackSafeUpgradeStatus + */ + RollbackSafeUpgradeStatus.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.RollbackSafeUpgradeStatus) + return object; + var message = new $root.google.container.v1beta1.RollbackSafeUpgradeStatus(); + switch (object.mode) { + default: + if (typeof object.mode === "number") { + message.mode = object.mode; + break; + } + break; + case "MODE_UNSPECIFIED": + case 0: + message.mode = 0; + break; + case "KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE": + case 1: + message.mode = 1; + break; + } + if (object.controlPlaneUpgradeRollbackEndTime != null) { + if (typeof object.controlPlaneUpgradeRollbackEndTime !== "object") + throw TypeError(".google.container.v1beta1.RollbackSafeUpgradeStatus.controlPlaneUpgradeRollbackEndTime: object expected"); + message.controlPlaneUpgradeRollbackEndTime = $root.google.protobuf.Timestamp.fromObject(object.controlPlaneUpgradeRollbackEndTime); + } + if (object.previousVersion != null) + message.previousVersion = String(object.previousVersion); + return message; + }; + + /** + * Creates a plain object from a RollbackSafeUpgradeStatus message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {google.container.v1beta1.RollbackSafeUpgradeStatus} message RollbackSafeUpgradeStatus + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RollbackSafeUpgradeStatus.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.mode = options.enums === String ? "MODE_UNSPECIFIED" : 0; + object.controlPlaneUpgradeRollbackEndTime = null; + object.previousVersion = ""; + } + if (message.mode != null && message.hasOwnProperty("mode")) + object.mode = options.enums === String ? $root.google.container.v1beta1.RollbackSafeUpgradeStatus.Mode[message.mode] === undefined ? message.mode : $root.google.container.v1beta1.RollbackSafeUpgradeStatus.Mode[message.mode] : message.mode; + if (message.controlPlaneUpgradeRollbackEndTime != null && message.hasOwnProperty("controlPlaneUpgradeRollbackEndTime")) + object.controlPlaneUpgradeRollbackEndTime = $root.google.protobuf.Timestamp.toObject(message.controlPlaneUpgradeRollbackEndTime, options); + if (message.previousVersion != null && message.hasOwnProperty("previousVersion")) + object.previousVersion = message.previousVersion; + return object; + }; + + /** + * Converts this RollbackSafeUpgradeStatus to JSON. + * @function toJSON + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @instance + * @returns {Object.} JSON object + */ + RollbackSafeUpgradeStatus.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RollbackSafeUpgradeStatus + * @function getTypeUrl + * @memberof google.container.v1beta1.RollbackSafeUpgradeStatus + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RollbackSafeUpgradeStatus.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.RollbackSafeUpgradeStatus"; + }; + + /** + * Mode enum. + * @name google.container.v1beta1.RollbackSafeUpgradeStatus.Mode + * @enum {number} + * @property {number} MODE_UNSPECIFIED=0 MODE_UNSPECIFIED value + * @property {number} KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE=1 KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE value + */ + RollbackSafeUpgradeStatus.Mode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MODE_UNSPECIFIED"] = 0; + values[valuesById[1] = "KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE"] = 1; + return values; + })(); + + return RollbackSafeUpgradeStatus; + })(); + v1beta1.UpgradeDetails = (function() { /** @@ -150744,6 +160114,8 @@ * @property {string|null} [initialVersion] UpgradeDetails initialVersion * @property {string|null} [targetVersion] UpgradeDetails targetVersion * @property {google.container.v1beta1.UpgradeDetails.StartType|null} [startType] UpgradeDetails startType + * @property {string|null} [initialEmulatedVersion] UpgradeDetails initialEmulatedVersion + * @property {string|null} [targetEmulatedVersion] UpgradeDetails targetEmulatedVersion */ /** @@ -150809,6 +160181,22 @@ */ UpgradeDetails.prototype.startType = 0; + /** + * UpgradeDetails initialEmulatedVersion. + * @member {string} initialEmulatedVersion + * @memberof google.container.v1beta1.UpgradeDetails + * @instance + */ + UpgradeDetails.prototype.initialEmulatedVersion = ""; + + /** + * UpgradeDetails targetEmulatedVersion. + * @member {string} targetEmulatedVersion + * @memberof google.container.v1beta1.UpgradeDetails + * @instance + */ + UpgradeDetails.prototype.targetEmulatedVersion = ""; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -150860,6 +160248,10 @@ writer.uint32(/* id 5, wireType 2 =*/42).string(message.targetVersion); if (message.startType != null && Object.hasOwnProperty.call(message, "startType")) writer.uint32(/* id 6, wireType 0 =*/48).int32(message.startType); + if (message.initialEmulatedVersion != null && Object.hasOwnProperty.call(message, "initialEmulatedVersion")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.initialEmulatedVersion); + if (message.targetEmulatedVersion != null && Object.hasOwnProperty.call(message, "targetEmulatedVersion")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.targetEmulatedVersion); return writer; }; @@ -150920,6 +160312,14 @@ message.startType = reader.int32(); break; } + case 7: { + message.initialEmulatedVersion = reader.string(); + break; + } + case 8: { + message.targetEmulatedVersion = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -150998,6 +160398,12 @@ case 2: break; } + if (message.initialEmulatedVersion != null && message.hasOwnProperty("initialEmulatedVersion")) + if (!$util.isString(message.initialEmulatedVersion)) + return "initialEmulatedVersion: string expected"; + if (message.targetEmulatedVersion != null && message.hasOwnProperty("targetEmulatedVersion")) + if (!$util.isString(message.targetEmulatedVersion)) + return "targetEmulatedVersion: string expected"; return null; }; @@ -151075,6 +160481,10 @@ message.startType = 2; break; } + if (object.initialEmulatedVersion != null) + message.initialEmulatedVersion = String(object.initialEmulatedVersion); + if (object.targetEmulatedVersion != null) + message.targetEmulatedVersion = String(object.targetEmulatedVersion); return message; }; @@ -151096,6 +160506,8 @@ object.initialVersion = ""; object.targetVersion = ""; object.startType = options.enums === String ? "START_TYPE_UNSPECIFIED" : 0; + object.initialEmulatedVersion = ""; + object.targetEmulatedVersion = ""; } if (message.state != null && message.hasOwnProperty("state")) object.state = options.enums === String ? $root.google.container.v1beta1.UpgradeDetails.State[message.state] === undefined ? message.state : $root.google.container.v1beta1.UpgradeDetails.State[message.state] : message.state; @@ -151115,6 +160527,10 @@ object.targetVersion = message.targetVersion; if (message.startType != null && message.hasOwnProperty("startType")) object.startType = options.enums === String ? $root.google.container.v1beta1.UpgradeDetails.StartType[message.startType] === undefined ? message.startType : $root.google.container.v1beta1.UpgradeDetails.StartType[message.startType] : message.startType; + if (message.initialEmulatedVersion != null && message.hasOwnProperty("initialEmulatedVersion")) + object.initialEmulatedVersion = message.initialEmulatedVersion; + if (message.targetEmulatedVersion != null && message.hasOwnProperty("targetEmulatedVersion")) + object.targetEmulatedVersion = message.targetEmulatedVersion; return object; }; @@ -152974,6 +162390,469 @@ return SecretSyncConfig; })(); + v1beta1.ManagedOpenTelemetryConfig = (function() { + + /** + * Properties of a ManagedOpenTelemetryConfig. + * @memberof google.container.v1beta1 + * @interface IManagedOpenTelemetryConfig + * @property {google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|null} [scope] ManagedOpenTelemetryConfig scope + */ + + /** + * Constructs a new ManagedOpenTelemetryConfig. + * @memberof google.container.v1beta1 + * @classdesc Represents a ManagedOpenTelemetryConfig. + * @implements IManagedOpenTelemetryConfig + * @constructor + * @param {google.container.v1beta1.IManagedOpenTelemetryConfig=} [properties] Properties to set + */ + function ManagedOpenTelemetryConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ManagedOpenTelemetryConfig scope. + * @member {google.container.v1beta1.ManagedOpenTelemetryConfig.Scope|null|undefined} scope + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @instance + */ + ManagedOpenTelemetryConfig.prototype.scope = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ManagedOpenTelemetryConfig.prototype, "_scope", { + get: $util.oneOfGetter($oneOfFields = ["scope"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ManagedOpenTelemetryConfig instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {google.container.v1beta1.IManagedOpenTelemetryConfig=} [properties] Properties to set + * @returns {google.container.v1beta1.ManagedOpenTelemetryConfig} ManagedOpenTelemetryConfig instance + */ + ManagedOpenTelemetryConfig.create = function create(properties) { + return new ManagedOpenTelemetryConfig(properties); + }; + + /** + * Encodes the specified ManagedOpenTelemetryConfig message. Does not implicitly {@link google.container.v1beta1.ManagedOpenTelemetryConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {google.container.v1beta1.IManagedOpenTelemetryConfig} message ManagedOpenTelemetryConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedOpenTelemetryConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.scope != null && Object.hasOwnProperty.call(message, "scope")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.scope); + return writer; + }; + + /** + * Encodes the specified ManagedOpenTelemetryConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.ManagedOpenTelemetryConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {google.container.v1beta1.IManagedOpenTelemetryConfig} message ManagedOpenTelemetryConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManagedOpenTelemetryConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.ManagedOpenTelemetryConfig} ManagedOpenTelemetryConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedOpenTelemetryConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.ManagedOpenTelemetryConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.scope = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ManagedOpenTelemetryConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.ManagedOpenTelemetryConfig} ManagedOpenTelemetryConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManagedOpenTelemetryConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ManagedOpenTelemetryConfig message. + * @function verify + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ManagedOpenTelemetryConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.scope != null && message.hasOwnProperty("scope")) { + properties._scope = 1; + switch (message.scope) { + default: + return "scope: enum value expected"; + case 0: + case 1: + case 2: + break; + } + } + return null; + }; + + /** + * Creates a ManagedOpenTelemetryConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.ManagedOpenTelemetryConfig} ManagedOpenTelemetryConfig + */ + ManagedOpenTelemetryConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.ManagedOpenTelemetryConfig) + return object; + var message = new $root.google.container.v1beta1.ManagedOpenTelemetryConfig(); + switch (object.scope) { + default: + if (typeof object.scope === "number") { + message.scope = object.scope; + break; + } + break; + case "SCOPE_UNSPECIFIED": + case 0: + message.scope = 0; + break; + case "NONE": + case 1: + message.scope = 1; + break; + case "COLLECTION_AND_INSTRUMENTATION_COMPONENTS": + case 2: + message.scope = 2; + break; + } + return message; + }; + + /** + * Creates a plain object from a ManagedOpenTelemetryConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {google.container.v1beta1.ManagedOpenTelemetryConfig} message ManagedOpenTelemetryConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ManagedOpenTelemetryConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.scope != null && message.hasOwnProperty("scope")) { + object.scope = options.enums === String ? $root.google.container.v1beta1.ManagedOpenTelemetryConfig.Scope[message.scope] === undefined ? message.scope : $root.google.container.v1beta1.ManagedOpenTelemetryConfig.Scope[message.scope] : message.scope; + if (options.oneofs) + object._scope = "scope"; + } + return object; + }; + + /** + * Converts this ManagedOpenTelemetryConfig to JSON. + * @function toJSON + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @instance + * @returns {Object.} JSON object + */ + ManagedOpenTelemetryConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ManagedOpenTelemetryConfig + * @function getTypeUrl + * @memberof google.container.v1beta1.ManagedOpenTelemetryConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ManagedOpenTelemetryConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.ManagedOpenTelemetryConfig"; + }; + + /** + * Scope enum. + * @name google.container.v1beta1.ManagedOpenTelemetryConfig.Scope + * @enum {number} + * @property {number} SCOPE_UNSPECIFIED=0 SCOPE_UNSPECIFIED value + * @property {number} NONE=1 NONE value + * @property {number} COLLECTION_AND_INSTRUMENTATION_COMPONENTS=2 COLLECTION_AND_INSTRUMENTATION_COMPONENTS value + */ + ManagedOpenTelemetryConfig.Scope = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SCOPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "NONE"] = 1; + values[valuesById[2] = "COLLECTION_AND_INSTRUMENTATION_COMPONENTS"] = 2; + return values; + })(); + + return ManagedOpenTelemetryConfig; + })(); + + v1beta1.PodSnapshotConfig = (function() { + + /** + * Properties of a PodSnapshotConfig. + * @memberof google.container.v1beta1 + * @interface IPodSnapshotConfig + * @property {boolean|null} [enabled] PodSnapshotConfig enabled + */ + + /** + * Constructs a new PodSnapshotConfig. + * @memberof google.container.v1beta1 + * @classdesc Represents a PodSnapshotConfig. + * @implements IPodSnapshotConfig + * @constructor + * @param {google.container.v1beta1.IPodSnapshotConfig=} [properties] Properties to set + */ + function PodSnapshotConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PodSnapshotConfig enabled. + * @member {boolean} enabled + * @memberof google.container.v1beta1.PodSnapshotConfig + * @instance + */ + PodSnapshotConfig.prototype.enabled = false; + + /** + * Creates a new PodSnapshotConfig instance using the specified properties. + * @function create + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {google.container.v1beta1.IPodSnapshotConfig=} [properties] Properties to set + * @returns {google.container.v1beta1.PodSnapshotConfig} PodSnapshotConfig instance + */ + PodSnapshotConfig.create = function create(properties) { + return new PodSnapshotConfig(properties); + }; + + /** + * Encodes the specified PodSnapshotConfig message. Does not implicitly {@link google.container.v1beta1.PodSnapshotConfig.verify|verify} messages. + * @function encode + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {google.container.v1beta1.IPodSnapshotConfig} message PodSnapshotConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PodSnapshotConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.enabled != null && Object.hasOwnProperty.call(message, "enabled")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled); + return writer; + }; + + /** + * Encodes the specified PodSnapshotConfig message, length delimited. Does not implicitly {@link google.container.v1beta1.PodSnapshotConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {google.container.v1beta1.IPodSnapshotConfig} message PodSnapshotConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PodSnapshotConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PodSnapshotConfig message from the specified reader or buffer. + * @function decode + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.container.v1beta1.PodSnapshotConfig} PodSnapshotConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PodSnapshotConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.container.v1beta1.PodSnapshotConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.enabled = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PodSnapshotConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.container.v1beta1.PodSnapshotConfig} PodSnapshotConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PodSnapshotConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PodSnapshotConfig message. + * @function verify + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PodSnapshotConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.enabled != null && message.hasOwnProperty("enabled")) + if (typeof message.enabled !== "boolean") + return "enabled: boolean expected"; + return null; + }; + + /** + * Creates a PodSnapshotConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {Object.} object Plain object + * @returns {google.container.v1beta1.PodSnapshotConfig} PodSnapshotConfig + */ + PodSnapshotConfig.fromObject = function fromObject(object) { + if (object instanceof $root.google.container.v1beta1.PodSnapshotConfig) + return object; + var message = new $root.google.container.v1beta1.PodSnapshotConfig(); + if (object.enabled != null) + message.enabled = Boolean(object.enabled); + return message; + }; + + /** + * Creates a plain object from a PodSnapshotConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {google.container.v1beta1.PodSnapshotConfig} message PodSnapshotConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PodSnapshotConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.enabled = false; + if (message.enabled != null && message.hasOwnProperty("enabled")) + object.enabled = message.enabled; + return object; + }; + + /** + * Converts this PodSnapshotConfig to JSON. + * @function toJSON + * @memberof google.container.v1beta1.PodSnapshotConfig + * @instance + * @returns {Object.} JSON object + */ + PodSnapshotConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PodSnapshotConfig + * @function getTypeUrl + * @memberof google.container.v1beta1.PodSnapshotConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PodSnapshotConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.container.v1beta1.PodSnapshotConfig"; + }; + + return PodSnapshotConfig; + })(); + return v1beta1; })(); diff --git a/packages/google-container/protos/protos.json b/packages/google-container/protos/protos.json index f452c27ab45..75ddd3deb71 100644 --- a/packages/google-container/protos/protos.json +++ b/packages/google-container/protos/protos.json @@ -13,8 +13,8 @@ "java_package": "com.google.container.v1", "php_namespace": "Google\\Cloud\\Container\\V1", "ruby_package": "Google::Cloud::Container::V1", - "(google.api.resource_definition).type": "cloudkms.googleapis.com/CryptoKeyVersion", - "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" + "(google.api.resource_definition).type": "compute.googleapis.com/Subnetwork", + "(google.api.resource_definition).pattern": "projects/{project}/regions/{region}/subnetworks/{subnetwork}" }, "nested": { "ClusterManager": { @@ -929,6 +929,11 @@ "oneof": [ "hugepages" ] + }, + "_swapConfig": { + "oneof": [ + "swapConfig" + ] } }, "fields": { @@ -963,6 +968,14 @@ "(google.api.field_behavior)": "OPTIONAL" } }, + "swapConfig": { + "type": "SwapConfig", + "id": 12, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, "nodeKernelModuleLoading": { "type": "NodeKernelModuleLoading", "id": 13, @@ -1029,6 +1042,126 @@ "TRANSPARENT_HUGEPAGE_DEFRAG_NEVER": 5 } }, + "SwapConfig": { + "oneofs": { + "_enabled": { + "oneof": [ + "enabled" + ] + }, + "_encryptionConfig": { + "oneof": [ + "encryptionConfig" + ] + }, + "performanceProfile": { + "oneof": [ + "bootDiskProfile", + "ephemeralLocalSsdProfile", + "dedicatedLocalSsdProfile" + ] + } + }, + "fields": { + "enabled": { + "type": "bool", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "encryptionConfig": { + "type": "EncryptionConfig", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "bootDiskProfile": { + "type": "BootDiskProfile", + "id": 3 + }, + "ephemeralLocalSsdProfile": { + "type": "EphemeralLocalSsdProfile", + "id": 4 + }, + "dedicatedLocalSsdProfile": { + "type": "DedicatedLocalSsdProfile", + "id": 5 + } + }, + "nested": { + "EncryptionConfig": { + "oneofs": { + "_disabled": { + "oneof": [ + "disabled" + ] + } + }, + "fields": { + "disabled": { + "type": "bool", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + } + } + }, + "BootDiskProfile": { + "oneofs": { + "swapSize": { + "oneof": [ + "swapSizeGib", + "swapSizePercent" + ] + } + }, + "fields": { + "swapSizeGib": { + "type": "int64", + "id": 1 + }, + "swapSizePercent": { + "type": "int32", + "id": 2 + } + } + }, + "EphemeralLocalSsdProfile": { + "oneofs": { + "swapSize": { + "oneof": [ + "swapSizeGib", + "swapSizePercent" + ] + } + }, + "fields": { + "swapSizeGib": { + "type": "int64", + "id": 1 + }, + "swapSizePercent": { + "type": "int32", + "id": 2 + } + } + }, + "DedicatedLocalSsdProfile": { + "fields": { + "diskCount": { + "type": "int64", + "id": 1 + } + } + } + } + }, "NodeKernelModuleLoading": { "fields": { "policy": { @@ -1076,6 +1209,16 @@ "oneof": [ "singleProcessOomKill" ] + }, + "_shutdownGracePeriodSeconds": { + "oneof": [ + "shutdownGracePeriodSeconds" + ] + }, + "_shutdownGracePeriodCriticalPodsSeconds": { + "oneof": [ + "shutdownGracePeriodCriticalPodsSeconds" + ] } }, "fields": { @@ -1208,6 +1351,22 @@ "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } + }, + "shutdownGracePeriodSeconds": { + "type": "int32", + "id": 26, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "shutdownGracePeriodCriticalPodsSeconds": { + "type": "int32", + "id": 27, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } } } }, @@ -1381,6 +1540,11 @@ "secondaryBootDiskUpdateStrategy" ] }, + "_gpuDirectConfig": { + "oneof": [ + "gpuDirectConfig" + ] + }, "_localSsdEncryptionMode": { "oneof": [ "localSsdEncryptionMode" @@ -1571,6 +1735,13 @@ "proto3_optional": true } }, + "gpuDirectConfig": { + "type": "GPUDirectConfig", + "id": 51, + "options": { + "proto3_optional": true + } + }, "maxRunDuration": { "type": "google.protobuf.Duration", "id": 53 @@ -1599,6 +1770,10 @@ "bootDisk": { "type": "BootDisk", "id": 57 + }, + "consolidationDelay": { + "type": "google.protobuf.Duration", + "id": 60 } }, "nested": { @@ -1738,7 +1913,8 @@ "type": "string", "id": 19, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OPTIONAL", + "(google.api.resource_reference).type": "compute.googleapis.com/Subnetwork" } }, "networkTierConfig": { @@ -1943,6 +2119,11 @@ "options": { "(google.api.field_behavior)": "OPTIONAL" } + }, + "registryHosts": { + "rule": "repeated", + "type": "RegistryHostConfig", + "id": 3 } }, "nested": { @@ -2001,6 +2182,105 @@ } } } + }, + "RegistryHostConfig": { + "fields": { + "server": { + "type": "string", + "id": 1 + }, + "hosts": { + "rule": "repeated", + "type": "HostConfig", + "id": 2 + } + }, + "nested": { + "CertificateConfig": { + "oneofs": { + "certificate": { + "oneof": [ + "gcpSecretManagerSecretUri" + ] + } + }, + "fields": { + "gcpSecretManagerSecretUri": { + "type": "string", + "id": 1 + } + } + }, + "CertificateConfigPair": { + "fields": { + "cert": { + "type": "CertificateConfig", + "id": 1 + }, + "key": { + "type": "CertificateConfig", + "id": 2 + } + } + }, + "RegistryHeader": { + "fields": { + "key": { + "type": "string", + "id": 1 + }, + "value": { + "rule": "repeated", + "type": "string", + "id": 2 + } + } + }, + "HostCapability": { + "values": { + "HOST_CAPABILITY_UNSPECIFIED": 0, + "HOST_CAPABILITY_PULL": 1, + "HOST_CAPABILITY_RESOLVE": 2, + "HOST_CAPABILITY_PUSH": 3 + } + }, + "HostConfig": { + "fields": { + "host": { + "type": "string", + "id": 1 + }, + "capabilities": { + "rule": "repeated", + "type": "HostCapability", + "id": 2 + }, + "overridePath": { + "type": "bool", + "id": 3 + }, + "header": { + "rule": "repeated", + "type": "RegistryHeader", + "id": 4 + }, + "ca": { + "rule": "repeated", + "type": "CertificateConfig", + "id": 5 + }, + "client": { + "rule": "repeated", + "type": "CertificateConfigPair", + "id": 6 + }, + "dialTimeout": { + "type": "google.protobuf.Duration", + "id": 7 + } + } + } + } } } }, @@ -2191,6 +2471,13 @@ "lustreCsiDriverConfig": { "type": "LustreCsiDriverConfig", "id": 23 + }, + "sliceControllerConfig": { + "type": "SliceControllerConfig", + "id": 26, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } } }, @@ -2397,6 +2684,17 @@ } } }, + "SliceControllerConfig": { + "fields": { + "enabled": { + "type": "bool", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, "RayOperatorConfig": { "fields": { "enabled": { @@ -3107,6 +3405,10 @@ "anonymousAuthenticationConfig": { "type": "AnonymousAuthenticationConfig", "id": 164 + }, + "managedOpentelemetryConfig": { + "type": "ManagedOpenTelemetryConfig", + "id": 168 } }, "nested": { @@ -3206,6 +3508,14 @@ "(google.api.resource_reference).type": "cloudkms.googleapis.com/CryptoKeyVersion" } }, + "controlPlaneDiskEncryptionKeyVersions": { + "rule": "repeated", + "type": "string", + "id": 18, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, "gkeopsEtcdBackupEncryptionKey": { "type": "string", "id": 17, @@ -3775,6 +4085,14 @@ "desiredNetworkTierConfig": { "type": "NetworkTierConfig", "id": 155 + }, + "desiredPrivilegedAdmissionConfig": { + "type": "PrivilegedAdmissionConfig", + "id": 159 + }, + "desiredManagedOpentelemetryConfig": { + "type": "ManagedOpenTelemetryConfig", + "id": 163 } } }, @@ -3805,6 +4123,19 @@ "rule": "repeated", "type": "string", "id": 2 + }, + "status": { + "type": "Status", + "id": 3 + } + }, + "nested": { + "Status": { + "values": { + "STATUS_UNSPECIFIED": 0, + "ACTIVE": 1, + "DRAINING": 2 + } } } }, @@ -4356,6 +4687,14 @@ "bootDisk": { "type": "BootDisk", "id": 47 + }, + "nodeDrainConfig": { + "type": "NodePool.NodeDrainConfig", + "id": 48 + }, + "consolidationDelay": { + "type": "google.protobuf.Duration", + "id": 49 } } }, @@ -5193,6 +5532,10 @@ "bestEffortProvisioning": { "type": "BestEffortProvisioning", "id": 113 + }, + "nodeDrainConfig": { + "type": "NodeDrainConfig", + "id": 116 } }, "nested": { @@ -5329,6 +5672,24 @@ "id": 1 } } + }, + "NodeDrainConfig": { + "oneofs": { + "_respectPdbDuringNodePoolDeletion": { + "oneof": [ + "respectPdbDuringNodePoolDeletion" + ] + } + }, + "fields": { + "respectPdbDuringNodePoolDeletion": { + "type": "bool", + "id": 3, + "options": { + "proto3_optional": true + } + } + } } } }, @@ -5662,6 +6023,10 @@ "defaultComputeClassConfig": { "type": "DefaultComputeClassConfig", "id": 9 + }, + "autopilotGeneralProfile": { + "type": "AutopilotGeneralProfile", + "id": 14 } }, "nested": { @@ -5671,6 +6036,12 @@ "OPTIMIZE_UTILIZATION": 1, "BALANCED": 2 } + }, + "AutopilotGeneralProfile": { + "values": { + "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED": 0, + "NO_PERFORMANCE": 1 + } } } }, @@ -6879,6 +7250,32 @@ } } }, + "GPUDirectConfig": { + "oneofs": { + "_gpuDirectStrategy": { + "oneof": [ + "gpuDirectStrategy" + ] + } + }, + "fields": { + "gpuDirectStrategy": { + "type": "GPUDirectStrategy", + "id": 1, + "options": { + "proto3_optional": true + } + } + }, + "nested": { + "GPUDirectStrategy": { + "values": { + "GPU_DIRECT_STRATEGY_UNSPECIFIED": 0, + "RDMA": 2 + } + } + } + }, "PrivateIPv6GoogleAccess": { "values": { "PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED": 0, @@ -7002,6 +7399,11 @@ "oneof": [ "extendedSupportEndTime" ] + }, + "_disruptionEvent": { + "oneof": [ + "disruptionEvent" + ] } }, "fields": { @@ -7061,6 +7463,13 @@ "eventType": { "type": "EventType", "id": 12 + }, + "disruptionEvent": { + "type": "DisruptionEvent", + "id": 14, + "options": { + "proto3_optional": true + } } }, "nested": { @@ -7078,7 +7487,60 @@ "EVENT_TYPE_UNSPECIFIED": 0, "END_OF_SUPPORT": 1, "COS_MILESTONE_VERSION_UPDATE": 2, - "UPGRADE_LIFECYCLE": 3 + "UPGRADE_LIFECYCLE": 3, + "DISRUPTION_EVENT": 4 + } + } + } + }, + "DisruptionEvent": { + "oneofs": { + "_pdbViolationTimeout": { + "oneof": [ + "pdbViolationTimeout" + ] + } + }, + "fields": { + "disruptionType": { + "type": "DisruptionType", + "id": 1 + }, + "pdbBlockedNode": { + "type": "string", + "id": 2 + }, + "pdbBlockedPod": { + "rule": "repeated", + "type": "PdbBlockedPod", + "id": 3 + }, + "pdbViolationTimeout": { + "type": "google.protobuf.Duration", + "id": 4, + "options": { + "proto3_optional": true + } + } + }, + "nested": { + "DisruptionType": { + "values": { + "DISRUPTION_TYPE_UNSPECIFIED": 0, + "POD_NOT_ENOUGH_PDB": 1, + "POD_PDB_VIOLATION": 2 + } + }, + "PdbBlockedPod": { + "fields": { + "namespace": { + "type": "string", + "id": 1 + }, + "name": { + "type": "string", + "id": 2 + } } } } @@ -7376,7 +7838,8 @@ "values": { "NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED": 0, "BLUE_GREEN": 2, - "SURGE": 3 + "SURGE": 3, + "SHORT_LIVED": 5 } }, "ManagedPrometheusConfig": { @@ -8089,6 +8552,33 @@ } } } + }, + "ManagedOpenTelemetryConfig": { + "oneofs": { + "_scope": { + "oneof": [ + "scope" + ] + } + }, + "fields": { + "scope": { + "type": "Scope", + "id": 1, + "options": { + "proto3_optional": true + } + } + }, + "nested": { + "Scope": { + "values": { + "SCOPE_UNSPECIFIED": 0, + "NONE": 1, + "COLLECTION_AND_INSTRUMENTATION_COMPONENTS": 2 + } + } + } } } }, @@ -8101,8 +8591,8 @@ "java_package": "com.google.container.v1beta1", "php_namespace": "Google\\Cloud\\Container\\V1beta1", "ruby_package": "Google::Cloud::Container::V1beta1", - "(google.api.resource_definition).type": "cloudkms.googleapis.com/CryptoKeyVersion", - "(google.api.resource_definition).pattern": "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" + "(google.api.resource_definition).type": "compute.googleapis.com/Subnetwork", + "(google.api.resource_definition).pattern": "projects/{project}/regions/{region}/subnetworks/{subnetwork}" }, "nested": { "ClusterManager": { @@ -8966,6 +9456,40 @@ "(google.api.method_signature)": "name" } ] + }, + "CompleteControlPlaneUpgrade": { + "requestType": "CompleteControlPlaneUpgradeRequest", + "responseType": "Operation", + "options": { + "(google.api.http).post": "/v1beta1/{name=projects/*/locations/*/clusters/*}:completeControlPlaneUpgrade", + "(google.api.http).body": "*", + "(google.api.http).additional_bindings.post": "/v1beta1/{name=projects/*/zones/*/clusters/*}:completeControlPlaneUpgrade", + "(google.api.http).additional_bindings.body": "*" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta1/{name=projects/*/locations/*/clusters/*}:completeControlPlaneUpgrade", + "body": "*", + "additional_bindings": { + "post": "/v1beta1/{name=projects/*/zones/*/clusters/*}:completeControlPlaneUpgrade", + "body": "*" + } + } + } + ] + } + } + }, + "CompleteControlPlaneUpgradeRequest": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "version": { + "type": "string", + "id": 2 } } }, @@ -9255,6 +9779,16 @@ "oneof": [ "singleProcessOomKill" ] + }, + "_shutdownGracePeriodSeconds": { + "oneof": [ + "shutdownGracePeriodSeconds" + ] + }, + "_shutdownGracePeriodCriticalPodsSeconds": { + "oneof": [ + "shutdownGracePeriodCriticalPodsSeconds" + ] } }, "fields": { @@ -9387,6 +9921,22 @@ "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } + }, + "shutdownGracePeriodSeconds": { + "type": "int32", + "id": 26, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } + }, + "shutdownGracePeriodCriticalPodsSeconds": { + "type": "int32", + "id": 27, + "options": { + "(google.api.field_behavior)": "OPTIONAL", + "proto3_optional": true + } } } }, @@ -9560,6 +10110,11 @@ "secondaryBootDiskUpdateStrategy" ] }, + "_gpuDirectConfig": { + "oneof": [ + "gpuDirectConfig" + ] + }, "_localSsdEncryptionMode": { "oneof": [ "localSsdEncryptionMode" @@ -9758,6 +10313,13 @@ "proto3_optional": true } }, + "gpuDirectConfig": { + "type": "GPUDirectConfig", + "id": 51, + "options": { + "proto3_optional": true + } + }, "maxRunDuration": { "type": "google.protobuf.Duration", "id": 53 @@ -9786,6 +10348,10 @@ "bootDisk": { "type": "BootDisk", "id": 57 + }, + "consolidationDelay": { + "type": "google.protobuf.Duration", + "id": 60 } }, "nested": { @@ -9925,7 +10491,8 @@ "type": "string", "id": 19, "options": { - "(google.api.field_behavior)": "OUTPUT_ONLY" + "(google.api.field_behavior)": "OPTIONAL", + "(google.api.resource_reference).type": "compute.googleapis.com/Subnetwork" } }, "networkTierConfig": { @@ -10184,6 +10751,11 @@ "options": { "(google.api.field_behavior)": "OPTIONAL" } + }, + "registryHosts": { + "rule": "repeated", + "type": "RegistryHostConfig", + "id": 3 } }, "nested": { @@ -10211,37 +10783,136 @@ "fields": { "fqdns": { "rule": "repeated", - "type": "string", - "id": 1 + "type": "string", + "id": 1 + }, + "gcpSecretManagerCertificateConfig": { + "type": "GCPSecretManagerCertificateConfig", + "id": 2 + } + }, + "nested": { + "GCPSecretManagerCertificateConfig": { + "fields": { + "secretUri": { + "type": "string", + "id": 1 + } + } + } + } + } + } + }, + "WritableCgroups": { + "fields": { + "enabled": { + "type": "bool", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "RegistryHostConfig": { + "fields": { + "server": { + "type": "string", + "id": 1 + }, + "hosts": { + "rule": "repeated", + "type": "HostConfig", + "id": 2 + } + }, + "nested": { + "CertificateConfig": { + "oneofs": { + "certificate": { + "oneof": [ + "gcpSecretManagerSecretUri" + ] + } + }, + "fields": { + "gcpSecretManagerSecretUri": { + "type": "string", + "id": 1 + } + } + }, + "CertificateConfigPair": { + "fields": { + "cert": { + "type": "CertificateConfig", + "id": 1 + }, + "key": { + "type": "CertificateConfig", + "id": 2 + } + } + }, + "RegistryHeader": { + "fields": { + "key": { + "type": "string", + "id": 1 + }, + "value": { + "rule": "repeated", + "type": "string", + "id": 2 + } + } + }, + "HostCapability": { + "values": { + "HOST_CAPABILITY_UNSPECIFIED": 0, + "HOST_CAPABILITY_PULL": 1, + "HOST_CAPABILITY_RESOLVE": 2, + "HOST_CAPABILITY_PUSH": 3 + } + }, + "HostConfig": { + "fields": { + "host": { + "type": "string", + "id": 1 + }, + "capabilities": { + "rule": "repeated", + "type": "HostCapability", + "id": 2 + }, + "overridePath": { + "type": "bool", + "id": 3 + }, + "header": { + "rule": "repeated", + "type": "RegistryHeader", + "id": 4 + }, + "ca": { + "rule": "repeated", + "type": "CertificateConfig", + "id": 5 }, - "gcpSecretManagerCertificateConfig": { - "type": "GCPSecretManagerCertificateConfig", - "id": 2 - } - }, - "nested": { - "GCPSecretManagerCertificateConfig": { - "fields": { - "secretUri": { - "type": "string", - "id": 1 - } - } + "client": { + "rule": "repeated", + "type": "CertificateConfigPair", + "id": 6 + }, + "dialTimeout": { + "type": "google.protobuf.Duration", + "id": 7 } } } } - }, - "WritableCgroups": { - "fields": { - "enabled": { - "type": "bool", - "id": 1, - "options": { - "(google.api.field_behavior)": "OPTIONAL" - } - } - } } } }, @@ -10524,6 +11195,17 @@ "lustreCsiDriverConfig": { "type": "LustreCsiDriverConfig", "id": 23 + }, + "podSnapshotConfig": { + "type": "PodSnapshotConfig", + "id": 24 + }, + "sliceControllerConfig": { + "type": "SliceControllerConfig", + "id": 26, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } } }, @@ -10657,6 +11339,17 @@ } } }, + "SliceControllerConfig": { + "fields": { + "enabled": { + "type": "bool", + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, "RayOperatorConfig": { "fields": { "enabled": { @@ -11392,6 +12085,17 @@ "(google.api.field_behavior)": "OUTPUT_ONLY" } }, + "currentEmulatedVersion": { + "type": "string", + "id": 167, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "rollbackSafeUpgrade": { + "type": "RollbackSafeUpgrade", + "id": 170 + }, "currentNodeVersion": { "type": "string", "id": 105, @@ -11609,6 +12313,10 @@ "secretSyncConfig": { "type": "SecretSyncConfig", "id": 166 + }, + "managedOpentelemetryConfig": { + "type": "ManagedOpenTelemetryConfig", + "id": 168 } }, "nested": { @@ -11708,6 +12416,14 @@ "(google.api.resource_reference).type": "cloudkms.googleapis.com/CryptoKeyVersion" } }, + "controlPlaneDiskEncryptionKeyVersions": { + "rule": "repeated", + "type": "string", + "id": 18, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, "gkeopsEtcdBackupEncryptionKey": { "type": "string", "id": 17, @@ -12412,6 +13128,18 @@ "desiredSecretSyncConfig": { "type": "SecretSyncConfig", "id": 158 + }, + "desiredPrivilegedAdmissionConfig": { + "type": "PrivilegedAdmissionConfig", + "id": 159 + }, + "desiredRollbackSafeUpgrade": { + "type": "RollbackSafeUpgrade", + "id": 161 + }, + "desiredManagedOpentelemetryConfig": { + "type": "ManagedOpenTelemetryConfig", + "id": 163 } } }, @@ -12442,6 +13170,19 @@ "rule": "repeated", "type": "string", "id": 2 + }, + "status": { + "type": "Status", + "id": 3 + } + }, + "nested": { + "Status": { + "values": { + "STATUS_UNSPECIFIED": 0, + "ACTIVE": 1, + "DRAINING": 2 + } } } }, @@ -12993,6 +13734,14 @@ "bootDisk": { "type": "BootDisk", "id": 47 + }, + "nodeDrainConfig": { + "type": "NodePool.NodeDrainConfig", + "id": 48 + }, + "consolidationDelay": { + "type": "google.protobuf.Duration", + "id": 49 } } }, @@ -13899,6 +14648,10 @@ "bestEffortProvisioning": { "type": "BestEffortProvisioning", "id": 113 + }, + "nodeDrainConfig": { + "type": "NodeDrainConfig", + "id": 116 } }, "nested": { @@ -14033,6 +14786,24 @@ "id": 1 } } + }, + "NodeDrainConfig": { + "oneofs": { + "_respectPdbDuringNodePoolDeletion": { + "oneof": [ + "respectPdbDuringNodePoolDeletion" + ] + } + }, + "fields": { + "respectPdbDuringNodePoolDeletion": { + "type": "bool", + "id": 3, + "options": { + "proto3_optional": true + } + } + } } } }, @@ -14354,6 +15125,10 @@ "defaultComputeClassConfig": { "type": "DefaultComputeClassConfig", "id": 9 + }, + "autopilotGeneralProfile": { + "type": "AutopilotGeneralProfile", + "id": 14 } }, "nested": { @@ -14363,6 +15138,12 @@ "OPTIMIZE_UTILIZATION": 1, "BALANCED": 2 } + }, + "AutopilotGeneralProfile": { + "values": { + "AUTOPILOT_GENERAL_PROFILE_UNSPECIFIED": 0, + "NO_PERFORMANCE": 1 + } } } }, @@ -15489,6 +16270,32 @@ } } }, + "GPUDirectConfig": { + "oneofs": { + "_gpuDirectStrategy": { + "oneof": [ + "gpuDirectStrategy" + ] + } + }, + "fields": { + "gpuDirectStrategy": { + "type": "GPUDirectStrategy", + "id": 1, + "options": { + "proto3_optional": true + } + } + }, + "nested": { + "GPUDirectStrategy": { + "values": { + "GPU_DIRECT_STRATEGY_UNSPECIFIED": 0, + "RDMA": 2 + } + } + } + }, "GetOpenIDConfigRequest": { "fields": { "parent": { @@ -15724,7 +16531,41 @@ } }, "Master": { - "fields": {} + "fields": { + "compatibilityStatus": { + "type": "CompatibilityStatus", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "CompatibilityStatus": { + "fields": { + "downgradableVersion": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + }, + "emulatedVersionTime": { + "type": "google.protobuf.Timestamp", + "id": 3, + "options": { + "(google.api.field_behavior)": "OUTPUT_ONLY" + } + } + } + }, + "RollbackSafeUpgrade": { + "fields": { + "controlPlaneSoakDuration": { + "type": "google.protobuf.Duration", + "id": 1 + } + } }, "AutopilotConversionStatus": { "fields": { @@ -15930,6 +16771,11 @@ "oneof": [ "extendedSupportEndTime" ] + }, + "_disruptionEvent": { + "oneof": [ + "disruptionEvent" + ] } }, "fields": { @@ -15997,6 +16843,13 @@ "eventType": { "type": "EventType", "id": 12 + }, + "disruptionEvent": { + "type": "DisruptionEvent", + "id": 14, + "options": { + "proto3_optional": true + } } }, "nested": { @@ -16014,7 +16867,60 @@ "EVENT_TYPE_UNSPECIFIED": 0, "END_OF_SUPPORT": 1, "COS_MILESTONE_VERSION_UPDATE": 2, - "UPGRADE_LIFECYCLE": 3 + "UPGRADE_LIFECYCLE": 3, + "DISRUPTION_EVENT": 4 + } + } + } + }, + "DisruptionEvent": { + "oneofs": { + "_pdbViolationTimeout": { + "oneof": [ + "pdbViolationTimeout" + ] + } + }, + "fields": { + "disruptionType": { + "type": "DisruptionType", + "id": 1 + }, + "pdbBlockedNode": { + "type": "string", + "id": 2 + }, + "pdbBlockedPod": { + "rule": "repeated", + "type": "PdbBlockedPod", + "id": 3 + }, + "pdbViolationTimeout": { + "type": "google.protobuf.Duration", + "id": 4, + "options": { + "proto3_optional": true + } + } + }, + "nested": { + "DisruptionType": { + "values": { + "DISRUPTION_TYPE_UNSPECIFIED": 0, + "POD_NOT_ENOUGH_PDB": 1, + "POD_PDB_VIOLATION": 2 + } + }, + "PdbBlockedPod": { + "fields": { + "namespace": { + "type": "string", + "id": 1 + }, + "name": { + "type": "string", + "id": 2 + } } } } @@ -16107,7 +17013,8 @@ "values": { "NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED": 0, "BLUE_GREEN": 2, - "SURGE": 3 + "SURGE": 3, + "SHORT_LIVED": 5 } }, "LoggingConfig": { @@ -16705,6 +17612,10 @@ "options": { "proto3_optional": true } + }, + "rollbackSafeUpgradeStatus": { + "type": "RollbackSafeUpgradeStatus", + "id": 9 } }, "nested": { @@ -16729,6 +17640,30 @@ } } }, + "RollbackSafeUpgradeStatus": { + "fields": { + "mode": { + "type": "Mode", + "id": 1 + }, + "controlPlaneUpgradeRollbackEndTime": { + "type": "google.protobuf.Timestamp", + "id": 2 + }, + "previousVersion": { + "type": "string", + "id": 3 + } + }, + "nested": { + "Mode": { + "values": { + "MODE_UNSPECIFIED": 0, + "KCP_MINOR_UPGRADE_ROLLBACK_SAFE_MODE": 1 + } + } + } + }, "UpgradeDetails": { "oneofs": { "_startTime": { @@ -16775,6 +17710,14 @@ "startType": { "type": "StartType", "id": 6 + }, + "initialEmulatedVersion": { + "type": "string", + "id": 7 + }, + "targetEmulatedVersion": { + "type": "string", + "id": 8 } }, "nested": { @@ -16994,6 +17937,41 @@ } } } + }, + "ManagedOpenTelemetryConfig": { + "oneofs": { + "_scope": { + "oneof": [ + "scope" + ] + } + }, + "fields": { + "scope": { + "type": "Scope", + "id": 1, + "options": { + "proto3_optional": true + } + } + }, + "nested": { + "Scope": { + "values": { + "SCOPE_UNSPECIFIED": 0, + "NONE": 1, + "COLLECTION_AND_INSTRUMENTATION_COMPONENTS": 2 + } + } + } + }, + "PodSnapshotConfig": { + "fields": { + "enabled": { + "type": "bool", + "id": 1 + } + } } } } diff --git a/packages/google-container/samples/generated/v1/cluster_manager.update_node_pool.js b/packages/google-container/samples/generated/v1/cluster_manager.update_node_pool.js index 1ce703d7dd6..c42bbeb60d6 100644 --- a/packages/google-container/samples/generated/v1/cluster_manager.update_node_pool.js +++ b/packages/google-container/samples/generated/v1/cluster_manager.update_node_pool.js @@ -205,6 +205,16 @@ function main(nodeVersion, imageType) { * node pool to the specified boot disk config. */ // const bootDisk = {} + /** + * The desired node drain configuration for nodes in the node pool. + */ + // const nodeDrainConfig = {} + /** + * 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. + */ + // const consolidationDelay = {} // Imports the Container library const {ClusterManagerClient} = require('@google-cloud/container').v1; diff --git a/packages/google-container/samples/generated/v1/snippet_metadata_google.container.v1.json b/packages/google-container/samples/generated/v1/snippet_metadata_google.container.v1.json index 93e9dca4240..cae6d0bd52c 100644 --- a/packages/google-container/samples/generated/v1/snippet_metadata_google.container.v1.json +++ b/packages/google-container/samples/generated/v1/snippet_metadata_google.container.v1.json @@ -230,7 +230,7 @@ "segments": [ { "start": 25, - "end": 227, + "end": 237, "type": "FULL" } ], @@ -378,6 +378,14 @@ { "name": "boot_disk", "type": ".google.container.v1.BootDisk" + }, + { + "name": "node_drain_config", + "type": ".google.container.v1.NodePool.NodeDrainConfig" + }, + { + "name": "consolidation_delay", + "type": ".google.protobuf.Duration" } ], "resultType": ".google.container.v1.Operation", diff --git a/packages/google-container/samples/generated/v1beta1/cluster_manager.complete_control_plane_upgrade.js b/packages/google-container/samples/generated/v1beta1/cluster_manager.complete_control_plane_upgrade.js new file mode 100644 index 00000000000..d19bba3de61 --- /dev/null +++ b/packages/google-container/samples/generated/v1beta1/cluster_manager.complete_control_plane_upgrade.js @@ -0,0 +1,65 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main() { + // [START container_v1beta1_generated_ClusterManager_CompleteControlPlaneUpgrade_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * The name (project, location, cluster) of the cluster to complete upgrade. + * Specified in the format `projects/* /locations/* /clusters/*`. + */ + // const name = 'abc123' + /** + * API request version that initiates this operation. + */ + // const version = 'abc123' + + // Imports the Container library + const {ClusterManagerClient} = require('@google-cloud/container').v1beta1; + + // Instantiates a client + const containerClient = new ClusterManagerClient(); + + async function callCompleteControlPlaneUpgrade() { + // Construct request + const request = { + }; + + // Run request + const response = await containerClient.completeControlPlaneUpgrade(request); + console.log(response); + } + + callCompleteControlPlaneUpgrade(); + // [END container_v1beta1_generated_ClusterManager_CompleteControlPlaneUpgrade_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-container/samples/generated/v1beta1/cluster_manager.update_node_pool.js b/packages/google-container/samples/generated/v1beta1/cluster_manager.update_node_pool.js index 05ee290b2a1..b854e670451 100644 --- a/packages/google-container/samples/generated/v1beta1/cluster_manager.update_node_pool.js +++ b/packages/google-container/samples/generated/v1beta1/cluster_manager.update_node_pool.js @@ -202,6 +202,16 @@ function main(nodeVersion, imageType) { * node pool to the specified boot disk config. */ // const bootDisk = {} + /** + * The desired node drain configuration for nodes in the node pool. + */ + // const nodeDrainConfig = {} + /** + * 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. + */ + // const consolidationDelay = {} // Imports the Container library const {ClusterManagerClient} = require('@google-cloud/container').v1beta1; diff --git a/packages/google-container/samples/generated/v1beta1/snippet_metadata_google.container.v1beta1.json b/packages/google-container/samples/generated/v1beta1/snippet_metadata_google.container.v1beta1.json index 60f291d4ada..5beac57aacf 100644 --- a/packages/google-container/samples/generated/v1beta1/snippet_metadata_google.container.v1beta1.json +++ b/packages/google-container/samples/generated/v1beta1/snippet_metadata_google.container.v1beta1.json @@ -230,7 +230,7 @@ "segments": [ { "start": 25, - "end": 224, + "end": 234, "type": "FULL" } ], @@ -378,6 +378,14 @@ { "name": "boot_disk", "type": ".google.container.v1beta1.BootDisk" + }, + { + "name": "node_drain_config", + "type": ".google.container.v1beta1.NodePool.NodeDrainConfig" + }, + { + "name": "consolidation_delay", + "type": ".google.protobuf.Duration" } ], "resultType": ".google.container.v1beta1.Operation", @@ -2082,6 +2090,50 @@ } } } + }, + { + "regionTag": "container_v1beta1_generated_ClusterManager_CompleteControlPlaneUpgrade_async", + "title": "ClusterManager completeControlPlaneUpgrade Sample", + "origin": "API_DEFINITION", + "description": " CompleteControlPlaneUpgrade completes the rollback-safe upgrade by performing the step two upgrade for a specific cluster.", + "canonical": true, + "file": "cluster_manager.complete_control_plane_upgrade.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 57, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "CompleteControlPlaneUpgrade", + "fullName": "google.container.v1beta1.ClusterManager.CompleteControlPlaneUpgrade", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + }, + { + "name": "version", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.container.v1beta1.Operation", + "client": { + "shortName": "ClusterManagerClient", + "fullName": "google.container.v1beta1.ClusterManagerClient" + }, + "method": { + "shortName": "CompleteControlPlaneUpgrade", + "fullName": "google.container.v1beta1.ClusterManager.CompleteControlPlaneUpgrade", + "service": { + "shortName": "ClusterManager", + "fullName": "google.container.v1beta1.ClusterManager" + } + } + } } ] } diff --git a/packages/google-container/src/v1/cluster_manager_client.ts b/packages/google-container/src/v1/cluster_manager_client.ts index dc6420e5492..5b332ca33dd 100644 --- a/packages/google-container/src/v1/cluster_manager_client.ts +++ b/packages/google-container/src/v1/cluster_manager_client.ts @@ -183,6 +183,9 @@ export class ClusterManagerClient { cryptoKeyVersionPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}' ), + subnetworkPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/regions/{region}/subnetworks/{subnetwork}' + ), }; // Some of the methods on this service return "paged" results, @@ -929,6 +932,12 @@ export class ClusterManagerClient { * 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. + * @param {google.container.v1.NodePool.NodeDrainConfig} request.nodeDrainConfig + * The desired node drain configuration for nodes in the node pool. + * @param {google.protobuf.Duration} request.consolidationDelay + * 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. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. @@ -4725,6 +4734,55 @@ export class ClusterManagerClient { return this.pathTemplates.cryptoKeyVersionPathTemplate.match(cryptoKeyVersionName).crypto_key_version; } + /** + * Return a fully-qualified subnetwork resource name string. + * + * @param {string} project + * @param {string} region + * @param {string} subnetwork + * @returns {string} Resource name string. + */ + subnetworkPath(project:string,region:string,subnetwork:string) { + return this.pathTemplates.subnetworkPathTemplate.render({ + project: project, + region: region, + subnetwork: subnetwork, + }); + } + + /** + * Parse the project from Subnetwork resource. + * + * @param {string} subnetworkName + * A fully-qualified path representing Subnetwork resource. + * @returns {string} A string representing the project. + */ + matchProjectFromSubnetworkName(subnetworkName: string) { + return this.pathTemplates.subnetworkPathTemplate.match(subnetworkName).project; + } + + /** + * Parse the region from Subnetwork resource. + * + * @param {string} subnetworkName + * A fully-qualified path representing Subnetwork resource. + * @returns {string} A string representing the region. + */ + matchRegionFromSubnetworkName(subnetworkName: string) { + return this.pathTemplates.subnetworkPathTemplate.match(subnetworkName).region; + } + + /** + * Parse the subnetwork from Subnetwork resource. + * + * @param {string} subnetworkName + * A fully-qualified path representing Subnetwork resource. + * @returns {string} A string representing the subnetwork. + */ + matchSubnetworkFromSubnetworkName(subnetworkName: string) { + return this.pathTemplates.subnetworkPathTemplate.match(subnetworkName).subnetwork; + } + /** * Terminate the gRPC channel and close the client. * diff --git a/packages/google-container/src/v1beta1/cluster_manager_client.ts b/packages/google-container/src/v1beta1/cluster_manager_client.ts index cc0a50db475..3bff9dec861 100644 --- a/packages/google-container/src/v1beta1/cluster_manager_client.ts +++ b/packages/google-container/src/v1beta1/cluster_manager_client.ts @@ -183,6 +183,9 @@ export class ClusterManagerClient { cryptoKeyVersionPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}' ), + subnetworkPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/regions/{region}/subnetworks/{subnetwork}' + ), }; // Some of the methods on this service return "paged" results, @@ -236,7 +239,7 @@ export class ClusterManagerClient { // Iterate over each of the methods that the service provides // and create an API call method for each. const clusterManagerStubMethods = - ['listClusters', 'getCluster', 'createCluster', 'updateCluster', 'updateNodePool', 'setNodePoolAutoscaling', 'setLoggingService', 'setMonitoringService', 'setAddonsConfig', 'setLocations', 'updateMaster', 'setMasterAuth', 'deleteCluster', 'listOperations', 'getOperation', 'cancelOperation', 'getServerConfig', 'getJsonWebKeys', 'listNodePools', 'getNodePool', 'createNodePool', 'deleteNodePool', 'completeNodePoolUpgrade', 'rollbackNodePoolUpgrade', 'setNodePoolManagement', 'setLabels', 'setLegacyAbac', 'startIpRotation', 'completeIpRotation', 'setNodePoolSize', 'setNetworkPolicy', 'setMaintenancePolicy', 'listUsableSubnetworks', 'checkAutopilotCompatibility', 'listLocations', 'fetchClusterUpgradeInfo', 'fetchNodePoolUpgradeInfo']; + ['listClusters', 'getCluster', 'createCluster', 'updateCluster', 'updateNodePool', 'setNodePoolAutoscaling', 'setLoggingService', 'setMonitoringService', 'setAddonsConfig', 'setLocations', 'updateMaster', 'setMasterAuth', 'deleteCluster', 'listOperations', 'getOperation', 'cancelOperation', 'getServerConfig', 'getJsonWebKeys', 'listNodePools', 'getNodePool', 'createNodePool', 'deleteNodePool', 'completeNodePoolUpgrade', 'rollbackNodePoolUpgrade', 'setNodePoolManagement', 'setLabels', 'setLegacyAbac', 'startIpRotation', 'completeIpRotation', 'setNodePoolSize', 'setNetworkPolicy', 'setMaintenancePolicy', 'listUsableSubnetworks', 'checkAutopilotCompatibility', 'listLocations', 'fetchClusterUpgradeInfo', 'fetchNodePoolUpgradeInfo', 'completeControlPlaneUpgrade']; for (const methodName of clusterManagerStubMethods) { const callPromise = this.clusterManagerStub.then( stub => (...args: Array<{}>) => { @@ -926,6 +929,12 @@ export class ClusterManagerClient { * 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. + * @param {google.container.v1beta1.NodePool.NodeDrainConfig} request.nodeDrainConfig + * The desired node drain configuration for nodes in the node pool. + * @param {google.protobuf.Duration} request.consolidationDelay + * 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. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. @@ -4467,6 +4476,104 @@ export class ClusterManagerClient { throw error; }); } +/** + * CompleteControlPlaneUpgrade completes the rollback-safe upgrade by + * performing the step two upgrade for a specific cluster. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * The name (project, location, cluster) of the cluster to complete upgrade. + * Specified in the format `projects/* /locations/* /clusters/*`. + * @param {string} request.version + * API request version that initiates this operation. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.container.v1beta1.Operation|Operation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta1/cluster_manager.complete_control_plane_upgrade.js + * region_tag:container_v1beta1_generated_ClusterManager_CompleteControlPlaneUpgrade_async + */ + completeControlPlaneUpgrade( + request?: protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, + options?: CallOptions): + Promise<[ + protos.google.container.v1beta1.IOperation, + protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest|undefined, {}|undefined + ]>; + completeControlPlaneUpgrade( + request: protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, + options: CallOptions, + callback: Callback< + protos.google.container.v1beta1.IOperation, + protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest|null|undefined, + {}|null|undefined>): void; + completeControlPlaneUpgrade( + request: protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, + callback: Callback< + protos.google.container.v1beta1.IOperation, + protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest|null|undefined, + {}|null|undefined>): void; + completeControlPlaneUpgrade( + request?: protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.container.v1beta1.IOperation, + protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.container.v1beta1.IOperation, + protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.container.v1beta1.IOperation, + protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = this._gaxModule.routingHeader.fromParams({ + 'name': request.name ?? '', + }); + this.initialize().catch(err => {throw err}); + this._log.info('completeControlPlaneUpgrade request %j', request); + const wrappedCallback: Callback< + protos.google.container.v1beta1.IOperation, + protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest|null|undefined, + {}|null|undefined>|undefined = callback + ? (error, response, options, rawResponse) => { + this._log.info('completeControlPlaneUpgrade response %j', response); + callback!(error, response, options, rawResponse); // We verified callback above. + } + : undefined; + return this.innerApiCalls.completeControlPlaneUpgrade(request, options, wrappedCallback) + ?.then(([response, options, rawResponse]: [ + protos.google.container.v1beta1.IOperation, + protos.google.container.v1beta1.ICompleteControlPlaneUpgradeRequest|undefined, + {}|undefined + ]) => { + this._log.info('completeControlPlaneUpgrade response %j', response); + return [response, options, rawResponse]; + }).catch((error: any) => { + if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { + const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + } + throw error; + }); + } /** * Lists subnetworks that can be used for creating clusters in a project. @@ -4817,6 +4924,55 @@ export class ClusterManagerClient { return this.pathTemplates.cryptoKeyVersionPathTemplate.match(cryptoKeyVersionName).crypto_key_version; } + /** + * Return a fully-qualified subnetwork resource name string. + * + * @param {string} project + * @param {string} region + * @param {string} subnetwork + * @returns {string} Resource name string. + */ + subnetworkPath(project:string,region:string,subnetwork:string) { + return this.pathTemplates.subnetworkPathTemplate.render({ + project: project, + region: region, + subnetwork: subnetwork, + }); + } + + /** + * Parse the project from Subnetwork resource. + * + * @param {string} subnetworkName + * A fully-qualified path representing Subnetwork resource. + * @returns {string} A string representing the project. + */ + matchProjectFromSubnetworkName(subnetworkName: string) { + return this.pathTemplates.subnetworkPathTemplate.match(subnetworkName).project; + } + + /** + * Parse the region from Subnetwork resource. + * + * @param {string} subnetworkName + * A fully-qualified path representing Subnetwork resource. + * @returns {string} A string representing the region. + */ + matchRegionFromSubnetworkName(subnetworkName: string) { + return this.pathTemplates.subnetworkPathTemplate.match(subnetworkName).region; + } + + /** + * Parse the subnetwork from Subnetwork resource. + * + * @param {string} subnetworkName + * A fully-qualified path representing Subnetwork resource. + * @returns {string} A string representing the subnetwork. + */ + matchSubnetworkFromSubnetworkName(subnetworkName: string) { + return this.pathTemplates.subnetworkPathTemplate.match(subnetworkName).subnetwork; + } + /** * Terminate the gRPC channel and close the client. * diff --git a/packages/google-container/src/v1beta1/cluster_manager_client_config.json b/packages/google-container/src/v1beta1/cluster_manager_client_config.json index 099b9b50e4a..57c108164ff 100644 --- a/packages/google-container/src/v1beta1/cluster_manager_client_config.json +++ b/packages/google-container/src/v1beta1/cluster_manager_client_config.json @@ -199,6 +199,10 @@ "FetchNodePoolUpgradeInfo": { "retry_codes_name": "non_idempotent", "retry_params_name": "default" + }, + "CompleteControlPlaneUpgrade": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" } } } diff --git a/packages/google-container/src/v1beta1/gapic_metadata.json b/packages/google-container/src/v1beta1/gapic_metadata.json index 06bef2d3b00..566a9b41292 100644 --- a/packages/google-container/src/v1beta1/gapic_metadata.json +++ b/packages/google-container/src/v1beta1/gapic_metadata.json @@ -190,6 +190,11 @@ "fetchNodePoolUpgradeInfo" ] }, + "CompleteControlPlaneUpgrade": { + "methods": [ + "completeControlPlaneUpgrade" + ] + }, "ListUsableSubnetworks": { "methods": [ "listUsableSubnetworks", @@ -382,6 +387,11 @@ "fetchNodePoolUpgradeInfo" ] }, + "CompleteControlPlaneUpgrade": { + "methods": [ + "completeControlPlaneUpgrade" + ] + }, "ListUsableSubnetworks": { "methods": [ "listUsableSubnetworks", diff --git a/packages/google-container/test/gapic_cluster_manager_v1.ts b/packages/google-container/test/gapic_cluster_manager_v1.ts index e6529a6fd75..b5f50a53299 100644 --- a/packages/google-container/test/gapic_cluster_manager_v1.ts +++ b/packages/google-container/test/gapic_cluster_manager_v1.ts @@ -5517,5 +5517,51 @@ describe('v1.ClusterManagerClient', () => { .getCall(-1).calledWith(fakePath)); }); }); + + describe('subnetwork', async () => { + const fakePath = "/rendered/path/subnetwork"; + const expectedParameters = { + project: "projectValue", + region: "regionValue", + subnetwork: "subnetworkValue", + }; + const client = new clustermanagerModule.v1.ClusterManagerClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.subnetworkPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.subnetworkPathTemplate.match = + sinon.stub().returns(expectedParameters); + + it('subnetworkPath', () => { + const result = client.subnetworkPath("projectValue", "regionValue", "subnetworkValue"); + assert.strictEqual(result, fakePath); + assert((client.pathTemplates.subnetworkPathTemplate.render as SinonStub) + .getCall(-1).calledWith(expectedParameters)); + }); + + it('matchProjectFromSubnetworkName', () => { + const result = client.matchProjectFromSubnetworkName(fakePath); + assert.strictEqual(result, "projectValue"); + assert((client.pathTemplates.subnetworkPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchRegionFromSubnetworkName', () => { + const result = client.matchRegionFromSubnetworkName(fakePath); + assert.strictEqual(result, "regionValue"); + assert((client.pathTemplates.subnetworkPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchSubnetworkFromSubnetworkName', () => { + const result = client.matchSubnetworkFromSubnetworkName(fakePath); + assert.strictEqual(result, "subnetworkValue"); + assert((client.pathTemplates.subnetworkPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + }); }); }); diff --git a/packages/google-container/test/gapic_cluster_manager_v1beta1.ts b/packages/google-container/test/gapic_cluster_manager_v1beta1.ts index 3f582868828..43881ed3e4d 100644 --- a/packages/google-container/test/gapic_cluster_manager_v1beta1.ts +++ b/packages/google-container/test/gapic_cluster_manager_v1beta1.ts @@ -5271,6 +5271,114 @@ describe('v1beta1.ClusterManagerClient', () => { }); }); + describe('completeControlPlaneUpgrade', () => { + it('invokes completeControlPlaneUpgrade without error', async () => { + const client = new clustermanagerModule.v1beta1.ClusterManagerClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.container.v1beta1.CompleteControlPlaneUpgradeRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.container.v1beta1.CompleteControlPlaneUpgradeRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedResponse = generateSampleMessage( + new protos.google.container.v1beta1.Operation() + ); + client.innerApiCalls.completeControlPlaneUpgrade = stubSimpleCall(expectedResponse); + const [response] = await client.completeControlPlaneUpgrade(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.completeControlPlaneUpgrade as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.completeControlPlaneUpgrade as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes completeControlPlaneUpgrade without error using callback', async () => { + const client = new clustermanagerModule.v1beta1.ClusterManagerClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.container.v1beta1.CompleteControlPlaneUpgradeRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.container.v1beta1.CompleteControlPlaneUpgradeRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedResponse = generateSampleMessage( + new protos.google.container.v1beta1.Operation() + ); + client.innerApiCalls.completeControlPlaneUpgrade = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.completeControlPlaneUpgrade( + request, + (err?: Error|null, result?: protos.google.container.v1beta1.IOperation|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.completeControlPlaneUpgrade as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.completeControlPlaneUpgrade as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes completeControlPlaneUpgrade with error', async () => { + const client = new clustermanagerModule.v1beta1.ClusterManagerClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.container.v1beta1.CompleteControlPlaneUpgradeRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.container.v1beta1.CompleteControlPlaneUpgradeRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedError = new Error('expected'); + client.innerApiCalls.completeControlPlaneUpgrade = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.completeControlPlaneUpgrade(request), expectedError); + const actualRequest = (client.innerApiCalls.completeControlPlaneUpgrade as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.completeControlPlaneUpgrade as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes completeControlPlaneUpgrade with closed client', async () => { + const client = new clustermanagerModule.v1beta1.ClusterManagerClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.container.v1beta1.CompleteControlPlaneUpgradeRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.container.v1beta1.CompleteControlPlaneUpgradeRequest', ['name']); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch(err => {throw err}); + await assert.rejects(client.completeControlPlaneUpgrade(request), expectedError); + }); + }); + describe('listUsableSubnetworks', () => { it('invokes listUsableSubnetworks without error', async () => { const client = new clustermanagerModule.v1beta1.ClusterManagerClient({ @@ -5625,5 +5733,51 @@ describe('v1beta1.ClusterManagerClient', () => { .getCall(-1).calledWith(fakePath)); }); }); + + describe('subnetwork', async () => { + const fakePath = "/rendered/path/subnetwork"; + const expectedParameters = { + project: "projectValue", + region: "regionValue", + subnetwork: "subnetworkValue", + }; + const client = new clustermanagerModule.v1beta1.ClusterManagerClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.subnetworkPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.subnetworkPathTemplate.match = + sinon.stub().returns(expectedParameters); + + it('subnetworkPath', () => { + const result = client.subnetworkPath("projectValue", "regionValue", "subnetworkValue"); + assert.strictEqual(result, fakePath); + assert((client.pathTemplates.subnetworkPathTemplate.render as SinonStub) + .getCall(-1).calledWith(expectedParameters)); + }); + + it('matchProjectFromSubnetworkName', () => { + const result = client.matchProjectFromSubnetworkName(fakePath); + assert.strictEqual(result, "projectValue"); + assert((client.pathTemplates.subnetworkPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchRegionFromSubnetworkName', () => { + const result = client.matchRegionFromSubnetworkName(fakePath); + assert.strictEqual(result, "regionValue"); + assert((client.pathTemplates.subnetworkPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchSubnetworkFromSubnetworkName', () => { + const result = client.matchSubnetworkFromSubnetworkName(fakePath); + assert.strictEqual(result, "subnetworkValue"); + assert((client.pathTemplates.subnetworkPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + }); }); });