in syndicate/connection/application_autoscaling_connection.py [0:0]
def put_target_scaling_policy(self, policy_name, service_namespace,
resource_id, scalable_dimension,
target_value=None,
predefined_metric_type=None,
resource_label=None, metric_name=None,
namespace=None, dimensions=None,
statistic=None, unit=None,
scale_out_cooldown=None,
scale_in_cooldown=None):
params = dict(PolicyName=policy_name,
ServiceNamespace=service_namespace,
ResourceId=resource_id,
ScalableDimension=scalable_dimension,
PolicyType='TargetTrackingScaling')
target_scaling_config_dict = dict()
if target_value:
target_scaling_config_dict['TargetValue'] = target_value
predefined_config_dict = dict()
if predefined_metric_type:
predefined_config_dict[
'PredefinedMetricType'] = predefined_metric_type
if resource_label:
predefined_config_dict['ResourceLabel'] = resource_label
if predefined_config_dict:
target_scaling_config_dict[
'PredefinedMetricSpecification'] = predefined_config_dict
customized_config_dict = dict()
if metric_name:
customized_config_dict['MetricName'] = metric_name
if namespace:
customized_config_dict['Namespace'] = namespace
if dimensions:
customized_config_dict['Dimensions'] = dimensions
if statistic:
customized_config_dict['Statistic'] = statistic
if unit:
customized_config_dict['Unit'] = unit
if customized_config_dict:
params['CustomizedMetricSpecification'] = customized_config_dict
if scale_out_cooldown:
target_scaling_config_dict['ScaleOutCooldown'] = scale_out_cooldown
if scale_in_cooldown:
target_scaling_config_dict['ScaleInCooldown'] = scale_in_cooldown
if target_scaling_config_dict:
params[
'TargetTrackingScalingPolicyConfiguration'] = target_scaling_config_dict
return self.client.put_scaling_policy(**params)