Skip to content

ResourceDefinitionVersion

The ResourceDefinitionVersion resource allows you to manage versions of resource definitions in AWS Greengrass, facilitating the management of resources used by Greengrass groups. For more information, refer to the AWS Greengrass ResourceDefinitionVersions documentation.

Minimal Example

Create a basic ResourceDefinitionVersion with required properties and one optional property.

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

const resourceDefinitionVersion = await AWS.Greengrass.ResourceDefinitionVersion("myResourceDefinitionVersion", {
  ResourceDefinitionId: "myResourceDefinitionId",
  Resources: [
    {
      Id: "MyResource1",
      Name: "MyResource1",
      ResourceDataContainer: {
        LocalVolumeResourceData: {
          SourcePath: "/mnt/myLocalPath",
          DestinationPath: "/myGreengrassDestinationPath",
          GroupOwnerSetting: {
            GroupOwner: "None"
          }
        }
      }
    }
  ],
  adopt: true // Optional: Adopt existing resource if it already exists
});

Advanced Configuration

Configure a ResourceDefinitionVersion with multiple resources and advanced settings.

ts
const advancedResourceDefinitionVersion = await AWS.Greengrass.ResourceDefinitionVersion("advancedResourceDefinitionVersion", {
  ResourceDefinitionId: "advancedResourceDefinitionId",
  Resources: [
    {
      Id: "MyResource2",
      Name: "MyResource2",
      ResourceDataContainer: {
        LocalVolumeResourceData: {
          SourcePath: "/mnt/anotherLocalPath",
          DestinationPath: "/anotherGreengrassDestinationPath",
          GroupOwnerSetting: {
            GroupOwner: "GID",
            GroupId: "1001"
          }
        }
      }
    },
    {
      Id: "MyResource3",
      Name: "MyResource3",
      ResourceDataContainer: {
        S3ResourceData: {
          S3Uri: "s3://my-bucket/my-resource-data",
          GroupOwnerSetting: {
            GroupOwner: "None"
          }
        }
      }
    }
  ]
});

Example with Local Volume Resource Data

This example shows how to define a ResourceDefinitionVersion that uses local volume resource data.

ts
const localVolumeResourceDefinitionVersion = await AWS.Greengrass.ResourceDefinitionVersion("localVolumeResourceDefinitionVersion", {
  ResourceDefinitionId: "localVolumeResourceDefinitionId",
  Resources: [
    {
      Id: "MyLocalResource",
      Name: "MyLocalResource",
      ResourceDataContainer: {
        LocalVolumeResourceData: {
          SourcePath: "/mnt/myLocalVolume",
          DestinationPath: "/greengrass/localDestination",
          GroupOwnerSetting: {
            GroupOwner: "None"
          }
        }
      }
    }
  ]
});

Example with S3 Resource Data

This example demonstrates creating a ResourceDefinitionVersion with S3 resource data.

ts
const s3ResourceDefinitionVersion = await AWS.Greengrass.ResourceDefinitionVersion("s3ResourceDefinitionVersion", {
  ResourceDefinitionId: "s3ResourceDefinitionId",
  Resources: [
    {
      Id: "MyS3Resource",
      Name: "MyS3Resource",
      ResourceDataContainer: {
        S3ResourceData: {
          S3Uri: "s3://my-other-bucket/my-s3-resource-data",
          GroupOwnerSetting: {
            GroupOwner: "None"
          }
        }
      }
    }
  ]
});