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
constructor(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)
Properties
Link copied to clipboard
The description of the scheduled action.
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
Target action. Documented below.