in syndicate/core/transform/terraform/converter/tf_dynamo_db_converter.py [0:0]
def dynamo_db_autoscaling_target_policy(target_value,
target_name,
tf_resource_name,
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):
resource_id = build_aws_appautoscaling_target_resource_id_ref(
target_name=target_name)
scalable_dimension = build_aws_appautoscaling_target_scalable_dimension_ref(
target_name=target_name)
service_namespace = build_aws_appautoscaling_target_service_namespace_ref(
target_name=target_name)
resource = {
'name': f'dynamodb-read-capacity-utilization-{resource_id}',
'policy_type': 'TargetTrackingScaling',
'resource_id': resource_id,
'scalable_dimension': scalable_dimension,
'service_namespace': service_namespace,
}
target_scaling_config_dict = dict()
if target_value:
target_scaling_config_dict['target_value'] = target_value
predefined_config_dict = dict()
if predefined_metric_type:
predefined_config_dict[
'predefined_metric_type'] = predefined_metric_type
if resource_label:
predefined_config_dict['resource_label'] = resource_label
if predefined_config_dict:
target_scaling_config_dict[
'predefined_metric_specification'] = predefined_config_dict
customized_config_dict = dict()
if metric_name:
customized_config_dict['metric_name'] = 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:
target_scaling_config_dict[
'customized_metric_specification'] = customized_config_dict
if scale_out_cooldown:
target_scaling_config_dict['scale_out_cooldown'] = scale_out_cooldown
if scale_in_cooldown:
target_scaling_config_dict['scale_in_cooldown'] = scale_in_cooldown
if target_scaling_config_dict:
resource[
'target_tracking_scaling_policy_configuration'] = target_scaling_config_dict
resource = {
tf_resource_name: resource
}
return resource