Scheduled Action Args
data class ScheduledActionArgs(val description: Output<String>? = null, val enable: Output<Boolean>? = null, val endTime: Output<String>? = null, val iamRole: Output<String>? = null, val name: Output<String>? = null, val schedule: Output<String>? = null, val startTime: Output<String>? = null, val targetAction: Output<ScheduledActionTargetActionArgs>? = null) : ConvertibleToJava<ScheduledActionArgs>
Example Usage
Pause Cluster Action
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.iam.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.Policy;
import com.pulumi.aws.iam.PolicyArgs;
import com.pulumi.aws.iam.RolePolicyAttachment;
import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
import com.pulumi.aws.redshift.ScheduledAction;
import com.pulumi.aws.redshift.ScheduledActionArgs;
import com.pulumi.aws.redshift.inputs.ScheduledActionTargetActionArgs;
import com.pulumi.aws.redshift.inputs.ScheduledActionTargetActionPauseClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("scheduler.redshift.amazonaws.com")
.build())
.actions("sts:AssumeRole")
.build())
.build());
var exampleRole = new Role("exampleRole", RoleArgs.builder()
.assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
final var examplePolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.actions(
"redshift:PauseCluster",
"redshift:ResumeCluster",
"redshift:ResizeCluster")
.resources("*")
.build())
.build());
var examplePolicy = new Policy("examplePolicy", PolicyArgs.builder()
.policy(examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
.policyArn(examplePolicy.arn())
.role(exampleRole.name())
.build());
var exampleScheduledAction = new ScheduledAction("exampleScheduledAction", ScheduledActionArgs.builder()
.schedule("cron(00 23 * * ? *)")
.iamRole(exampleRole.arn())
.targetAction(ScheduledActionTargetActionArgs.builder()
.pauseCluster(ScheduledActionTargetActionPauseClusterArgs.builder()
.clusterIdentifier("tf-redshift001")
.build())
.build())
.build());
}
}
Content copied to clipboard
Resize Cluster Action
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.redshift.ScheduledAction;
import com.pulumi.aws.redshift.ScheduledActionArgs;
import com.pulumi.aws.redshift.inputs.ScheduledActionTargetActionArgs;
import com.pulumi.aws.redshift.inputs.ScheduledActionTargetActionResizeClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ScheduledAction("example", ScheduledActionArgs.builder()
.schedule("cron(00 23 * * ? *)")
.iamRole(aws_iam_role.example().arn())
.targetAction(ScheduledActionTargetActionArgs.builder()
.resizeCluster(ScheduledActionTargetActionResizeClusterArgs.builder()
.clusterIdentifier("tf-redshift001")
.clusterType("multi-node")
.nodeType("dc1.large")
.numberOfNodes(2)
.build())
.build())
.build());
}
}
Content copied to clipboard
Import
Redshift Scheduled Action can be imported using the name
, e.g.,
$ pulumi import aws:redshift/scheduledAction:ScheduledAction example tf-redshift-scheduled-action
Content copied to clipboard
Constructors
Link copied to clipboard
fun ScheduledActionArgs(description: Output<String>? = null, enable: Output<Boolean>? = null, endTime: Output<String>? = null, iamRole: Output<String>? = null, name: Output<String>? = null, schedule: Output<String>? = null, startTime: Output<String>? = null, targetAction: Output<ScheduledActionTargetActionArgs>? = null)
Functions
Properties
Link copied to clipboard
Link copied to clipboard
The schedule of action. The schedule is defined format of "at expression" or "cron expression", for example at(2016-03-04T17:27:00)
or cron(0 10 ? * MON *)
. See Scheduled Action for more information.
Link copied to clipboard