diff --git a/specification/resources/apps/models/app_component_instance_base.yml b/specification/resources/apps/models/app_component_instance_base.yml index ee07369c..6779982b 100644 --- a/specification/resources/apps/models/app_component_instance_base.yml +++ b/specification/resources/apps/models/app_component_instance_base.yml @@ -5,7 +5,7 @@ properties: type: integer format: int64 minimum: 1 - description: 'The amount of instances that this component should be scaled to. Default: 1' + description: 'The amount of instances that this component should be scaled to. Default: 1. Must not be set if autoscaling is used.' default: 1 example: 2 @@ -25,3 +25,36 @@ properties: - professional-xl default: basic-xxs example: basic-xxs + + autoscaling: + description: Configuration for automatically scaling this component based on metrics. + type: object + properties: + min_instance_count: + description: The minimum amount of instances for this component. Must be less than max_instance_count. + type: integer + format: uint32 + minimum: 1 + example: 2 + max_instance_count: + description: The maximum amount of instances for this component. Must be more than min_instance_count. + type: integer + format: uint32 + minimum: 1 + example: 3 + metrics: + description: The metrics that the component is scaled on. + type: object + properties: + cpu: + description: Settings for scaling the component based on CPU utilization. + type: object + properties: + percent: + description: The average target CPU utilization for the component. + type: integer + format: uint32 + minimum: 1 + maximum: 100 + default: 80 + example: 75