# ScheduledTaskBaseProps

The properties for the base ScheduledEc2Task or ScheduledFargateTask task.

Extends: ScheduledTaskBaseProps
Used as props by: ScheduledTaskBase

- Source: [`aws-ecs-patterns/lib/base/scheduled-task-base.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-ecs-patterns/lib/base/scheduled-task-base.ts#L16)
- Type last changed: v2.77.0 · 26 Apr 2023

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_applicationautoscaling as appscaling } from 'aws-cdk-lib';
import { aws_ec2 as ec2 } from 'aws-cdk-lib';
import { aws_ecs as ecs } from 'aws-cdk-lib';
import { aws_ecs_patterns as ecs_patterns } from 'aws-cdk-lib';

declare const cluster: ecs.Cluster;
declare const schedule: appscaling.Schedule;
declare const securityGroup: ec2.SecurityGroup;
declare const subnet: ec2.Subnet;
declare const subnetFilter: ec2.SubnetFilter;
declare const vpc: ec2.Vpc;
const scheduledTaskBaseProps: ecs_patterns.ScheduledTaskBaseProps = {
  schedule: schedule,

  // the properties below are optional
  cluster: cluster,
  desiredTaskCount: 123,
  enabled: false,
  propagateTags: ecs.PropagatedTagSource.SERVICE,
  ruleName: 'ruleName',
  securityGroups: [securityGroup],
  subnetSelection: {
    availabilityZones: ['availabilityZones'],
    onePerAz: false,
    subnetFilters: [subnetFilter],
    subnetGroupName: 'subnetGroupName',
    subnets: [subnet],
    subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
  },
  tags: [{
    key: 'key',
    value: 'value',
  }],
  vpc: vpc,
};
```

## Properties

- `cluster`: [ICluster](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.ICluster.html) — The name of the cluster that hosts the service.

  **Default:** create a new cluster; if both cluster and vpc are omitted, a new VPC will be created for you.

  If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc.

- `desiredTaskCount`: number = 1 — The desired number of instantiations of the task definition to keep running on the service.

- `enabled`: boolean = true — Indicates whether the rule is enabled.

- `propagateTags`: [PropagatedTagSource](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.PropagatedTagSource.html) — Specifies whether to propagate the tags from the task definition to the task.

  **Default:** Tags will not be propagated

  If no value is specified, the tags are not propagated.

- `ruleName`: string — A name for the rule.

  **Default:** AWS CloudFormation generates a unique physical ID and uses that ID for the rule name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).

- `schedule`: [Schedule](/cdk/api/v2/docs/aws-cdk-lib.aws_applicationautoscaling.Schedule.html) (required) — The schedule or rate (frequency) that determines when CloudWatch Events runs the rule.

  For more information, see
  [Schedule Expression Syntax for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)
  in the Amazon CloudWatch User Guide.

- `securityGroups`: [ISecurityGroup](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.ISecurityGroup.html)[] — Existing security groups to use for your service.

  **Default:** a new security group will be created.

- `subnetSelection`: [SubnetSelection](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.SubnetSelection.html) — In what subnets to place the task's ENIs.

  **Default:** Private subnets

  (Only applicable in case the TaskDefinition is configured for AwsVpc networking)

- `tags`: [Tag](/cdk/api/v2/docs/aws-cdk-lib.aws_events_targets.Tag.html)[] — The metadata that you apply to the task to help you categorize and organize them.

  **Default:** No tags are applied to the task

  Each tag consists of a key and an optional value, both of which you define.

- `vpc`: [IVpc](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html) — The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed.

  **Default:** uses the VPC defined in the cluster or creates a new VPC.

  If a vpc is specified, the cluster construct should be omitted. Alternatively, you can omit both vpc and cluster.
