/* tslint:disable */ /* eslint-disable */ /** * Kubernetes * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: unversioned * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { exists } from '../runtime'; import { IoK8sApiAutoscalingV1CrossVersionObjectReference, IoK8sApiAutoscalingV1CrossVersionObjectReferenceFromJSON, IoK8sApiAutoscalingV1CrossVersionObjectReferenceToJSON, } from './'; /** * specification of a horizontal pod autoscaler. * @export * @interface IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec */ export interface IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec { /** * maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. * @type {number} * @memberof IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec */ maxReplicas: number; /** * 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. * @type {number} * @memberof IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec */ minReplicas?: number; /** * * @type {IoK8sApiAutoscalingV1CrossVersionObjectReference} * @memberof IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec */ scaleTargetRef: IoK8sApiAutoscalingV1CrossVersionObjectReference; /** * 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. * @type {number} * @memberof IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec */ targetCPUUtilizationPercentage?: number; } export function IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpecFromJSON( json: any, ): IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec { return IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpecFromJSONTyped(json, false); } export function IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpecFromJSONTyped( json: any, _ignoreDiscriminator: boolean, ): IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec { if (json === undefined || json === null) { return json; } return { maxReplicas: json['maxReplicas'], minReplicas: !exists(json, 'minReplicas') ? undefined : json['minReplicas'], scaleTargetRef: IoK8sApiAutoscalingV1CrossVersionObjectReferenceFromJSON( json['scaleTargetRef'], ), targetCPUUtilizationPercentage: !exists(json, 'targetCPUUtilizationPercentage') ? undefined : json['targetCPUUtilizationPercentage'], }; } export function IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpecToJSON( value?: IoK8sApiAutoscalingV1HorizontalPodAutoscalerSpec | null, ): any { if (value === undefined) { return undefined; } if (value === null) { return null; } return { maxReplicas: value.maxReplicas, minReplicas: value.minReplicas, scaleTargetRef: IoK8sApiAutoscalingV1CrossVersionObjectReferenceToJSON(value.scaleTargetRef), targetCPUUtilizationPercentage: value.targetCPUUtilizationPercentage, }; }