Skip to content

TaskDefinition

The TaskDefinition resource allows you to create and manage AWS IoTWireless TaskDefinitions which are used to define tasks for LoRaWAN gateways, including updates and task creation.

Minimal Example

Create a basic TaskDefinition with the required properties and some common optional settings.

ts
import AWS from "alchemy/aws/control";

const basicTaskDefinition = await AWS.IoTWireless.TaskDefinition("basicTaskDefinition", {
  AutoCreateTasks: true,
  Name: "MyBasicTaskDefinition",
  TaskDefinitionType: "UPDATE",
  Tags: [
    {
      Key: "Environment",
      Value: "Production"
    }
  ]
});

Advanced Configuration

Configure a TaskDefinition with a LoRaWAN update gateway task entry, allowing you to specify detailed updates for your gateways.

ts
const advancedTaskDefinition = await AWS.IoTWireless.TaskDefinition("advancedTaskDefinition", {
  AutoCreateTasks: true,
  Name: "MyAdvancedTaskDefinition",
  LoRaWANUpdateGatewayTaskEntry: {
    Update: {
      GatewayId: "Gateway123",
      UpdateType: "FIRMWARE",
      FirmwareVersion: "1.0.0"
    }
  },
  Tags: [
    {
      Key: "Project",
      Value: "IoTDeployment"
    }
  ]
});

Custom Update Configuration

Create a TaskDefinition that specifies a custom update, including a different task entry.

ts
const customUpdateTaskDefinition = await AWS.IoTWireless.TaskDefinition("customUpdateTaskDefinition", {
  AutoCreateTasks: false,
  Name: "MyCustomUpdateTaskDefinition",
  Update: {
    UpdateType: "FIRMWARE",
    GatewayId: "CustomGateway123",
    FirmwareVersion: "2.0.1"
  },
  Tags: [
    {
      Key: "Department",
      Value: "Engineering"
    }
  ]
});

Adoption of Existing Resources

Create a TaskDefinition that adopts an existing resource instead of failing if it already exists.

ts
const adoptExistingTaskDefinition = await AWS.IoTWireless.TaskDefinition("adoptTaskDefinition", {
  AutoCreateTasks: true,
  Name: "MyAdoptedTaskDefinition",
  adopt: true,
  Tags: [
    {
      Key: "Status",
      Value: "Adopted"
    }
  ]
});