def put_target_scaling_policy()

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)