Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.autoscalingplans.inputs.ScalingPlanScalingInstructionArgs Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.aws.autoscalingplans.inputs;
import com.pulumi.aws.autoscalingplans.inputs.ScalingPlanScalingInstructionCustomizedLoadMetricSpecificationArgs;
import com.pulumi.aws.autoscalingplans.inputs.ScalingPlanScalingInstructionPredefinedLoadMetricSpecificationArgs;
import com.pulumi.aws.autoscalingplans.inputs.ScalingPlanScalingInstructionTargetTrackingConfigurationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class ScalingPlanScalingInstructionArgs extends com.pulumi.resources.ResourceArgs {
public static final ScalingPlanScalingInstructionArgs Empty = new ScalingPlanScalingInstructionArgs();
/**
* Customized load metric to use for predictive scaling. You must specify either `customized_load_metric_specification` or `predefined_load_metric_specification` when configuring predictive scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_CustomizedLoadMetricSpecification.html).
*
*/
@Import(name="customizedLoadMetricSpecification")
private @Nullable Output customizedLoadMetricSpecification;
/**
* @return Customized load metric to use for predictive scaling. You must specify either `customized_load_metric_specification` or `predefined_load_metric_specification` when configuring predictive scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_CustomizedLoadMetricSpecification.html).
*
*/
public Optional> customizedLoadMetricSpecification() {
return Optional.ofNullable(this.customizedLoadMetricSpecification);
}
/**
* Boolean controlling whether dynamic scaling by AWS Auto Scaling is disabled. Defaults to `false`.
*
*/
@Import(name="disableDynamicScaling")
private @Nullable Output disableDynamicScaling;
/**
* @return Boolean controlling whether dynamic scaling by AWS Auto Scaling is disabled. Defaults to `false`.
*
*/
public Optional> disableDynamicScaling() {
return Optional.ofNullable(this.disableDynamicScaling);
}
/**
* Maximum capacity of the resource. The exception to this upper limit is if you specify a non-default setting for `predictive_scaling_max_capacity_behavior`.
*
*/
@Import(name="maxCapacity", required=true)
private Output maxCapacity;
/**
* @return Maximum capacity of the resource. The exception to this upper limit is if you specify a non-default setting for `predictive_scaling_max_capacity_behavior`.
*
*/
public Output maxCapacity() {
return this.maxCapacity;
}
/**
* Minimum capacity of the resource.
*
*/
@Import(name="minCapacity", required=true)
private Output minCapacity;
/**
* @return Minimum capacity of the resource.
*
*/
public Output minCapacity() {
return this.minCapacity;
}
/**
* Predefined load metric to use for predictive scaling. You must specify either `predefined_load_metric_specification` or `customized_load_metric_specification` when configuring predictive scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_PredefinedLoadMetricSpecification.html).
*
*/
@Import(name="predefinedLoadMetricSpecification")
private @Nullable Output predefinedLoadMetricSpecification;
/**
* @return Predefined load metric to use for predictive scaling. You must specify either `predefined_load_metric_specification` or `customized_load_metric_specification` when configuring predictive scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_PredefinedLoadMetricSpecification.html).
*
*/
public Optional> predefinedLoadMetricSpecification() {
return Optional.ofNullable(this.predefinedLoadMetricSpecification);
}
/**
* Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource.
* Valid values: `SetForecastCapacityToMaxCapacity`, `SetMaxCapacityAboveForecastCapacity`, `SetMaxCapacityToForecastCapacity`.
*
*/
@Import(name="predictiveScalingMaxCapacityBehavior")
private @Nullable Output predictiveScalingMaxCapacityBehavior;
/**
* @return Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource.
* Valid values: `SetForecastCapacityToMaxCapacity`, `SetMaxCapacityAboveForecastCapacity`, `SetMaxCapacityToForecastCapacity`.
*
*/
public Optional> predictiveScalingMaxCapacityBehavior() {
return Optional.ofNullable(this.predictiveScalingMaxCapacityBehavior);
}
/**
* Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity.
*
*/
@Import(name="predictiveScalingMaxCapacityBuffer")
private @Nullable Output predictiveScalingMaxCapacityBuffer;
/**
* @return Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity.
*
*/
public Optional> predictiveScalingMaxCapacityBuffer() {
return Optional.ofNullable(this.predictiveScalingMaxCapacityBuffer);
}
/**
* Predictive scaling mode. Valid values: `ForecastAndScale`, `ForecastOnly`.
*
*/
@Import(name="predictiveScalingMode")
private @Nullable Output predictiveScalingMode;
/**
* @return Predictive scaling mode. Valid values: `ForecastAndScale`, `ForecastOnly`.
*
*/
public Optional> predictiveScalingMode() {
return Optional.ofNullable(this.predictiveScalingMode);
}
/**
* ID of the resource. This string consists of the resource type and unique identifier.
*
*/
@Import(name="resourceId", required=true)
private Output resourceId;
/**
* @return ID of the resource. This string consists of the resource type and unique identifier.
*
*/
public Output resourceId() {
return this.resourceId;
}
/**
* Scalable dimension associated with the resource. Valid values: `autoscaling:autoScalingGroup:DesiredCapacity`, `dynamodb:index:ReadCapacityUnits`, `dynamodb:index:WriteCapacityUnits`, `dynamodb:table:ReadCapacityUnits`, `dynamodb:table:WriteCapacityUnits`, `ecs:service:DesiredCount`, `ec2:spot-fleet-request:TargetCapacity`, `rds:cluster:ReadReplicaCount`.
*
*/
@Import(name="scalableDimension", required=true)
private Output scalableDimension;
/**
* @return Scalable dimension associated with the resource. Valid values: `autoscaling:autoScalingGroup:DesiredCapacity`, `dynamodb:index:ReadCapacityUnits`, `dynamodb:index:WriteCapacityUnits`, `dynamodb:table:ReadCapacityUnits`, `dynamodb:table:WriteCapacityUnits`, `ecs:service:DesiredCount`, `ec2:spot-fleet-request:TargetCapacity`, `rds:cluster:ReadReplicaCount`.
*
*/
public Output scalableDimension() {
return this.scalableDimension;
}
/**
* Controls whether a resource's externally created scaling policies are kept or replaced. Valid values: `KeepExternalPolicies`, `ReplaceExternalPolicies`. Defaults to `KeepExternalPolicies`.
*
*/
@Import(name="scalingPolicyUpdateBehavior")
private @Nullable Output scalingPolicyUpdateBehavior;
/**
* @return Controls whether a resource's externally created scaling policies are kept or replaced. Valid values: `KeepExternalPolicies`, `ReplaceExternalPolicies`. Defaults to `KeepExternalPolicies`.
*
*/
public Optional> scalingPolicyUpdateBehavior() {
return Optional.ofNullable(this.scalingPolicyUpdateBehavior);
}
/**
* Amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out.
*
*/
@Import(name="scheduledActionBufferTime")
private @Nullable Output scheduledActionBufferTime;
/**
* @return Amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out.
*
*/
public Optional> scheduledActionBufferTime() {
return Optional.ofNullable(this.scheduledActionBufferTime);
}
/**
* Namespace of the AWS service. Valid values: `autoscaling`, `dynamodb`, `ecs`, `ec2`, `rds`.
*
*/
@Import(name="serviceNamespace", required=true)
private Output serviceNamespace;
/**
* @return Namespace of the AWS service. Valid values: `autoscaling`, `dynamodb`, `ecs`, `ec2`, `rds`.
*
*/
public Output serviceNamespace() {
return this.serviceNamespace;
}
/**
* Structure that defines new target tracking configurations. Each of these structures includes a specific scaling metric and a target value for the metric, along with various parameters to use with dynamic scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_TargetTrackingConfiguration.html).
*
*/
@Import(name="targetTrackingConfigurations", required=true)
private Output> targetTrackingConfigurations;
/**
* @return Structure that defines new target tracking configurations. Each of these structures includes a specific scaling metric and a target value for the metric, along with various parameters to use with dynamic scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_TargetTrackingConfiguration.html).
*
*/
public Output> targetTrackingConfigurations() {
return this.targetTrackingConfigurations;
}
private ScalingPlanScalingInstructionArgs() {}
private ScalingPlanScalingInstructionArgs(ScalingPlanScalingInstructionArgs $) {
this.customizedLoadMetricSpecification = $.customizedLoadMetricSpecification;
this.disableDynamicScaling = $.disableDynamicScaling;
this.maxCapacity = $.maxCapacity;
this.minCapacity = $.minCapacity;
this.predefinedLoadMetricSpecification = $.predefinedLoadMetricSpecification;
this.predictiveScalingMaxCapacityBehavior = $.predictiveScalingMaxCapacityBehavior;
this.predictiveScalingMaxCapacityBuffer = $.predictiveScalingMaxCapacityBuffer;
this.predictiveScalingMode = $.predictiveScalingMode;
this.resourceId = $.resourceId;
this.scalableDimension = $.scalableDimension;
this.scalingPolicyUpdateBehavior = $.scalingPolicyUpdateBehavior;
this.scheduledActionBufferTime = $.scheduledActionBufferTime;
this.serviceNamespace = $.serviceNamespace;
this.targetTrackingConfigurations = $.targetTrackingConfigurations;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ScalingPlanScalingInstructionArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ScalingPlanScalingInstructionArgs $;
public Builder() {
$ = new ScalingPlanScalingInstructionArgs();
}
public Builder(ScalingPlanScalingInstructionArgs defaults) {
$ = new ScalingPlanScalingInstructionArgs(Objects.requireNonNull(defaults));
}
/**
* @param customizedLoadMetricSpecification Customized load metric to use for predictive scaling. You must specify either `customized_load_metric_specification` or `predefined_load_metric_specification` when configuring predictive scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_CustomizedLoadMetricSpecification.html).
*
* @return builder
*
*/
public Builder customizedLoadMetricSpecification(@Nullable Output customizedLoadMetricSpecification) {
$.customizedLoadMetricSpecification = customizedLoadMetricSpecification;
return this;
}
/**
* @param customizedLoadMetricSpecification Customized load metric to use for predictive scaling. You must specify either `customized_load_metric_specification` or `predefined_load_metric_specification` when configuring predictive scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_CustomizedLoadMetricSpecification.html).
*
* @return builder
*
*/
public Builder customizedLoadMetricSpecification(ScalingPlanScalingInstructionCustomizedLoadMetricSpecificationArgs customizedLoadMetricSpecification) {
return customizedLoadMetricSpecification(Output.of(customizedLoadMetricSpecification));
}
/**
* @param disableDynamicScaling Boolean controlling whether dynamic scaling by AWS Auto Scaling is disabled. Defaults to `false`.
*
* @return builder
*
*/
public Builder disableDynamicScaling(@Nullable Output disableDynamicScaling) {
$.disableDynamicScaling = disableDynamicScaling;
return this;
}
/**
* @param disableDynamicScaling Boolean controlling whether dynamic scaling by AWS Auto Scaling is disabled. Defaults to `false`.
*
* @return builder
*
*/
public Builder disableDynamicScaling(Boolean disableDynamicScaling) {
return disableDynamicScaling(Output.of(disableDynamicScaling));
}
/**
* @param maxCapacity Maximum capacity of the resource. The exception to this upper limit is if you specify a non-default setting for `predictive_scaling_max_capacity_behavior`.
*
* @return builder
*
*/
public Builder maxCapacity(Output maxCapacity) {
$.maxCapacity = maxCapacity;
return this;
}
/**
* @param maxCapacity Maximum capacity of the resource. The exception to this upper limit is if you specify a non-default setting for `predictive_scaling_max_capacity_behavior`.
*
* @return builder
*
*/
public Builder maxCapacity(Integer maxCapacity) {
return maxCapacity(Output.of(maxCapacity));
}
/**
* @param minCapacity Minimum capacity of the resource.
*
* @return builder
*
*/
public Builder minCapacity(Output minCapacity) {
$.minCapacity = minCapacity;
return this;
}
/**
* @param minCapacity Minimum capacity of the resource.
*
* @return builder
*
*/
public Builder minCapacity(Integer minCapacity) {
return minCapacity(Output.of(minCapacity));
}
/**
* @param predefinedLoadMetricSpecification Predefined load metric to use for predictive scaling. You must specify either `predefined_load_metric_specification` or `customized_load_metric_specification` when configuring predictive scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_PredefinedLoadMetricSpecification.html).
*
* @return builder
*
*/
public Builder predefinedLoadMetricSpecification(@Nullable Output predefinedLoadMetricSpecification) {
$.predefinedLoadMetricSpecification = predefinedLoadMetricSpecification;
return this;
}
/**
* @param predefinedLoadMetricSpecification Predefined load metric to use for predictive scaling. You must specify either `predefined_load_metric_specification` or `customized_load_metric_specification` when configuring predictive scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_PredefinedLoadMetricSpecification.html).
*
* @return builder
*
*/
public Builder predefinedLoadMetricSpecification(ScalingPlanScalingInstructionPredefinedLoadMetricSpecificationArgs predefinedLoadMetricSpecification) {
return predefinedLoadMetricSpecification(Output.of(predefinedLoadMetricSpecification));
}
/**
* @param predictiveScalingMaxCapacityBehavior Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource.
* Valid values: `SetForecastCapacityToMaxCapacity`, `SetMaxCapacityAboveForecastCapacity`, `SetMaxCapacityToForecastCapacity`.
*
* @return builder
*
*/
public Builder predictiveScalingMaxCapacityBehavior(@Nullable Output predictiveScalingMaxCapacityBehavior) {
$.predictiveScalingMaxCapacityBehavior = predictiveScalingMaxCapacityBehavior;
return this;
}
/**
* @param predictiveScalingMaxCapacityBehavior Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource.
* Valid values: `SetForecastCapacityToMaxCapacity`, `SetMaxCapacityAboveForecastCapacity`, `SetMaxCapacityToForecastCapacity`.
*
* @return builder
*
*/
public Builder predictiveScalingMaxCapacityBehavior(String predictiveScalingMaxCapacityBehavior) {
return predictiveScalingMaxCapacityBehavior(Output.of(predictiveScalingMaxCapacityBehavior));
}
/**
* @param predictiveScalingMaxCapacityBuffer Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity.
*
* @return builder
*
*/
public Builder predictiveScalingMaxCapacityBuffer(@Nullable Output predictiveScalingMaxCapacityBuffer) {
$.predictiveScalingMaxCapacityBuffer = predictiveScalingMaxCapacityBuffer;
return this;
}
/**
* @param predictiveScalingMaxCapacityBuffer Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity.
*
* @return builder
*
*/
public Builder predictiveScalingMaxCapacityBuffer(Integer predictiveScalingMaxCapacityBuffer) {
return predictiveScalingMaxCapacityBuffer(Output.of(predictiveScalingMaxCapacityBuffer));
}
/**
* @param predictiveScalingMode Predictive scaling mode. Valid values: `ForecastAndScale`, `ForecastOnly`.
*
* @return builder
*
*/
public Builder predictiveScalingMode(@Nullable Output predictiveScalingMode) {
$.predictiveScalingMode = predictiveScalingMode;
return this;
}
/**
* @param predictiveScalingMode Predictive scaling mode. Valid values: `ForecastAndScale`, `ForecastOnly`.
*
* @return builder
*
*/
public Builder predictiveScalingMode(String predictiveScalingMode) {
return predictiveScalingMode(Output.of(predictiveScalingMode));
}
/**
* @param resourceId ID of the resource. This string consists of the resource type and unique identifier.
*
* @return builder
*
*/
public Builder resourceId(Output resourceId) {
$.resourceId = resourceId;
return this;
}
/**
* @param resourceId ID of the resource. This string consists of the resource type and unique identifier.
*
* @return builder
*
*/
public Builder resourceId(String resourceId) {
return resourceId(Output.of(resourceId));
}
/**
* @param scalableDimension Scalable dimension associated with the resource. Valid values: `autoscaling:autoScalingGroup:DesiredCapacity`, `dynamodb:index:ReadCapacityUnits`, `dynamodb:index:WriteCapacityUnits`, `dynamodb:table:ReadCapacityUnits`, `dynamodb:table:WriteCapacityUnits`, `ecs:service:DesiredCount`, `ec2:spot-fleet-request:TargetCapacity`, `rds:cluster:ReadReplicaCount`.
*
* @return builder
*
*/
public Builder scalableDimension(Output scalableDimension) {
$.scalableDimension = scalableDimension;
return this;
}
/**
* @param scalableDimension Scalable dimension associated with the resource. Valid values: `autoscaling:autoScalingGroup:DesiredCapacity`, `dynamodb:index:ReadCapacityUnits`, `dynamodb:index:WriteCapacityUnits`, `dynamodb:table:ReadCapacityUnits`, `dynamodb:table:WriteCapacityUnits`, `ecs:service:DesiredCount`, `ec2:spot-fleet-request:TargetCapacity`, `rds:cluster:ReadReplicaCount`.
*
* @return builder
*
*/
public Builder scalableDimension(String scalableDimension) {
return scalableDimension(Output.of(scalableDimension));
}
/**
* @param scalingPolicyUpdateBehavior Controls whether a resource's externally created scaling policies are kept or replaced. Valid values: `KeepExternalPolicies`, `ReplaceExternalPolicies`. Defaults to `KeepExternalPolicies`.
*
* @return builder
*
*/
public Builder scalingPolicyUpdateBehavior(@Nullable Output scalingPolicyUpdateBehavior) {
$.scalingPolicyUpdateBehavior = scalingPolicyUpdateBehavior;
return this;
}
/**
* @param scalingPolicyUpdateBehavior Controls whether a resource's externally created scaling policies are kept or replaced. Valid values: `KeepExternalPolicies`, `ReplaceExternalPolicies`. Defaults to `KeepExternalPolicies`.
*
* @return builder
*
*/
public Builder scalingPolicyUpdateBehavior(String scalingPolicyUpdateBehavior) {
return scalingPolicyUpdateBehavior(Output.of(scalingPolicyUpdateBehavior));
}
/**
* @param scheduledActionBufferTime Amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out.
*
* @return builder
*
*/
public Builder scheduledActionBufferTime(@Nullable Output scheduledActionBufferTime) {
$.scheduledActionBufferTime = scheduledActionBufferTime;
return this;
}
/**
* @param scheduledActionBufferTime Amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out.
*
* @return builder
*
*/
public Builder scheduledActionBufferTime(Integer scheduledActionBufferTime) {
return scheduledActionBufferTime(Output.of(scheduledActionBufferTime));
}
/**
* @param serviceNamespace Namespace of the AWS service. Valid values: `autoscaling`, `dynamodb`, `ecs`, `ec2`, `rds`.
*
* @return builder
*
*/
public Builder serviceNamespace(Output serviceNamespace) {
$.serviceNamespace = serviceNamespace;
return this;
}
/**
* @param serviceNamespace Namespace of the AWS service. Valid values: `autoscaling`, `dynamodb`, `ecs`, `ec2`, `rds`.
*
* @return builder
*
*/
public Builder serviceNamespace(String serviceNamespace) {
return serviceNamespace(Output.of(serviceNamespace));
}
/**
* @param targetTrackingConfigurations Structure that defines new target tracking configurations. Each of these structures includes a specific scaling metric and a target value for the metric, along with various parameters to use with dynamic scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_TargetTrackingConfiguration.html).
*
* @return builder
*
*/
public Builder targetTrackingConfigurations(Output> targetTrackingConfigurations) {
$.targetTrackingConfigurations = targetTrackingConfigurations;
return this;
}
/**
* @param targetTrackingConfigurations Structure that defines new target tracking configurations. Each of these structures includes a specific scaling metric and a target value for the metric, along with various parameters to use with dynamic scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_TargetTrackingConfiguration.html).
*
* @return builder
*
*/
public Builder targetTrackingConfigurations(List targetTrackingConfigurations) {
return targetTrackingConfigurations(Output.of(targetTrackingConfigurations));
}
/**
* @param targetTrackingConfigurations Structure that defines new target tracking configurations. Each of these structures includes a specific scaling metric and a target value for the metric, along with various parameters to use with dynamic scaling.
* More details can be found in the [AWS Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_TargetTrackingConfiguration.html).
*
* @return builder
*
*/
public Builder targetTrackingConfigurations(ScalingPlanScalingInstructionTargetTrackingConfigurationArgs... targetTrackingConfigurations) {
return targetTrackingConfigurations(List.of(targetTrackingConfigurations));
}
public ScalingPlanScalingInstructionArgs build() {
if ($.maxCapacity == null) {
throw new MissingRequiredPropertyException("ScalingPlanScalingInstructionArgs", "maxCapacity");
}
if ($.minCapacity == null) {
throw new MissingRequiredPropertyException("ScalingPlanScalingInstructionArgs", "minCapacity");
}
if ($.resourceId == null) {
throw new MissingRequiredPropertyException("ScalingPlanScalingInstructionArgs", "resourceId");
}
if ($.scalableDimension == null) {
throw new MissingRequiredPropertyException("ScalingPlanScalingInstructionArgs", "scalableDimension");
}
if ($.serviceNamespace == null) {
throw new MissingRequiredPropertyException("ScalingPlanScalingInstructionArgs", "serviceNamespace");
}
if ($.targetTrackingConfigurations == null) {
throw new MissingRequiredPropertyException("ScalingPlanScalingInstructionArgs", "targetTrackingConfigurations");
}
return $;
}
}
}