# io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec

From **Kubernetes**.

specification of a horizontal pod autoscaler.

- Type: `object`

## Properties

### `maxReplicas`

- Required: true
- Type: `integer`
- Format: `int32`
- Default: `0`

maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.

### `minReplicas`

- Required: false
- Type: `integer`
- Format: `int32`

minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.

### `scaleTargetRef`

- Required: true
- Default: `{}`

scaleTargetRef is the reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource.

### `targetCPUUtilizationPercentage`

- Required: false
- Type: `integer`
- Format: `int32`

targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.

## JSON Schema

```json
{"description":"specification of a horizontal pod autoscaler.","properties":{"maxReplicas":{"default":0,"description":"maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.","format":"int32","type":"integer"},"minReplicas":{"description":"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.","format":"int32","type":"integer"},"scaleTargetRef":{"allOf":[{"$ref":"#/components/schemas/io.k8s.api.autoscaling.v1.CrossVersionObjectReference"}],"default":{},"description":"scaleTargetRef is the reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource."},"targetCPUUtilizationPercentage":{"description":"targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.","format":"int32","type":"integer"}},"required":["scaleTargetRef","maxReplicas"],"type":"object"}
```
