# AWS IoT Greengrass Construct Library

This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.

```ts
import * as greengrass from 'aws-cdk-lib/aws-greengrass';
```

There are no official hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet. Here are some suggestions on how to proceed:

- Search [Construct Hub for Greengrass construct libraries](https://constructs.dev/search?q=greengrass)
- Use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, in the same way you would use [the CloudFormation AWS::Greengrass resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Greengrass.html) directly.

There are no hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet.
However, you can still use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, and use this service exactly as you would using CloudFormation directly.

For more information on the resources and properties available for this service, see the [CloudFormation documentation for AWS::Greengrass](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Greengrass.html).

(Read the [CDK Contributing Guide](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and submit an RFC if you are interested in contributing to this construct library.)

## Types

| Name | Kind | Summary |
| --- | --- | --- |
| [`CfnConnectorDefinition`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnConnectorDefinition) | Construct (L1) | The `AWS::Greengrass::ConnectorDefinition` resource represents a connector definition for AWS IoT Greengrass . |
| [`CfnConnectorDefinitionVersion`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnConnectorDefinitionVersion) | Construct (L1) | The `AWS::Greengrass::ConnectorDefinitionVersion` resource represents a connector definition version for AWS IoT Greengrass . |
| [`CfnCoreDefinition`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnCoreDefinition) | Construct (L1) | The `AWS::Greengrass::CoreDefinition` resource represents a core definition for AWS IoT Greengrass . |
| [`CfnCoreDefinitionVersion`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnCoreDefinitionVersion) | Construct (L1) | The `AWS::Greengrass::CoreDefinitionVersion` resource represents a core definition version for AWS IoT Greengrass . |
| [`CfnDeviceDefinition`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnDeviceDefinition) | Construct (L1) | The `AWS::Greengrass::DeviceDefinition` resource represents a device definition for AWS IoT Greengrass . |
| [`CfnDeviceDefinitionVersion`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnDeviceDefinitionVersion) | Construct (L1) | The `AWS::Greengrass::DeviceDefinitionVersion` resource represents a device definition version for AWS IoT Greengrass . |
| [`CfnFunctionDefinition`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition) | Construct (L1) | The `AWS::Greengrass::FunctionDefinition` resource represents a function definition for AWS IoT Greengrass . |
| [`CfnFunctionDefinitionVersion`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersion) | Construct (L1) | The `AWS::Greengrass::FunctionDefinitionVersion` resource represents a function definition version for AWS IoT Greengrass . |
| [`CfnGroup`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnGroup) | Construct (L1) | AWS IoT Greengrass seamlessly extends AWS to edge devices so they can act locally on the data they generate, while still using the cloud for management, analytics, and durable storage. |
| [`CfnGroupVersion`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnGroupVersion) | Construct (L1) | The `AWS::Greengrass::GroupVersion` resource represents a group version in AWS IoT Greengrass . |
| [`CfnLoggerDefinition`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnLoggerDefinition) | Construct (L1) | The `AWS::Greengrass::LoggerDefinition` resource represents a logger definition for AWS IoT Greengrass . |
| [`CfnLoggerDefinitionVersion`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnLoggerDefinitionVersion) | Construct (L1) | The `AWS::Greengrass::LoggerDefinitionVersion` resource represents a logger definition version for AWS IoT Greengrass . |
| [`CfnResourceDefinition`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition) | Construct (L1) | The `AWS::Greengrass::ResourceDefinition` resource represents a resource definition for AWS IoT Greengrass . |
| [`CfnResourceDefinitionVersion`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion) | Construct (L1) | The `AWS::Greengrass::ResourceDefinitionVersion` resource represents a resource definition version for AWS IoT Greengrass . |
| [`CfnSubscriptionDefinition`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnSubscriptionDefinition) | Construct (L1) | The `AWS::Greengrass::SubscriptionDefinition` resource represents a subscription definition for AWS IoT Greengrass . |
| [`CfnSubscriptionDefinitionVersion`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnSubscriptionDefinitionVersion) | Construct (L1) | The `AWS::Greengrass::SubscriptionDefinitionVersion` resource represents a subscription definition version for AWS IoT Greengrass . |
| [`CfnConnectorDefinition.ConnectorDefinitionVersionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnConnectorDefinition.ConnectorDefinitionVersionProperty) | Struct | A connector definition version contains a list of connectors. |
| [`CfnConnectorDefinition.ConnectorProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnConnectorDefinition.ConnectorProperty) | Struct | Connectors are modules that provide built-in integration with local infrastructure, device protocols, AWS , and other cloud services. |
| [`CfnConnectorDefinitionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnConnectorDefinitionProps) | Struct | Properties for defining a `CfnConnectorDefinition`. |
| [`CfnConnectorDefinitionVersion.ConnectorProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnConnectorDefinitionVersion.ConnectorProperty) | Struct | Connectors are modules that provide built-in integration with local infrastructure, device protocols, AWS , and other cloud services. |
| [`CfnConnectorDefinitionVersionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnConnectorDefinitionVersionProps) | Struct | Properties for defining a `CfnConnectorDefinitionVersion`. |
| [`CfnCoreDefinition.CoreDefinitionVersionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnCoreDefinition.CoreDefinitionVersionProperty) | Struct | A core definition version contains a Greengrass [core](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html) . |
| [`CfnCoreDefinition.CoreProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnCoreDefinition.CoreProperty) | Struct | A core is an AWS IoT device that runs the AWS IoT Greengrass core software and manages local processes for a Greengrass group. |
| [`CfnCoreDefinitionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnCoreDefinitionProps) | Struct | Properties for defining a `CfnCoreDefinition`. |
| [`CfnCoreDefinitionVersion.CoreProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnCoreDefinitionVersion.CoreProperty) | Struct | A core is an AWS IoT device that runs the AWS IoT Greengrass core software and manages local processes for a Greengrass group. |
| [`CfnCoreDefinitionVersionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnCoreDefinitionVersionProps) | Struct | Properties for defining a `CfnCoreDefinitionVersion`. |
| [`CfnDeviceDefinition.DeviceDefinitionVersionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnDeviceDefinition.DeviceDefinitionVersionProperty) | Struct | A device definition version contains a list of [devices](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html) . |
| [`CfnDeviceDefinition.DeviceProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnDeviceDefinition.DeviceProperty) | Struct | A device is an AWS IoT device (thing) that's added to a Greengrass group. |
| [`CfnDeviceDefinitionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnDeviceDefinitionProps) | Struct | Properties for defining a `CfnDeviceDefinition`. |
| [`CfnDeviceDefinitionVersion.DeviceProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnDeviceDefinitionVersion.DeviceProperty) | Struct | A device is an AWS IoT device (thing) that's added to a Greengrass group. |
| [`CfnDeviceDefinitionVersionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnDeviceDefinitionVersionProps) | Struct | Properties for defining a `CfnDeviceDefinitionVersion`. |
| [`CfnFunctionDefinition.DefaultConfigProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition.DefaultConfigProperty) | Struct | The default configuration that applies to all Lambda functions in the function definition version. |
| [`CfnFunctionDefinition.EnvironmentProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition.EnvironmentProperty) | Struct | The environment configuration for a Lambda function on the AWS IoT Greengrass core. |
| [`CfnFunctionDefinition.ExecutionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition.ExecutionProperty) | Struct | Configuration settings for the Lambda execution environment on the AWS IoT Greengrass core. |
| [`CfnFunctionDefinition.FunctionConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition.FunctionConfigurationProperty) | Struct | The group-specific configuration settings for a Lambda function. |
| [`CfnFunctionDefinition.FunctionDefinitionVersionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition.FunctionDefinitionVersionProperty) | Struct | A function definition version contains a list of functions. |
| [`CfnFunctionDefinition.FunctionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition.FunctionProperty) | Struct | A function is a Lambda function that's referenced from an AWS IoT Greengrass group. |
| [`CfnFunctionDefinition.ResourceAccessPolicyProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition.ResourceAccessPolicyProperty) | Struct | A list of the [resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) in the group that the function can access, with the corresponding read-only or read-write permissions. The maximum is 10 resources. |
| [`CfnFunctionDefinition.RunAsProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinition.RunAsProperty) | Struct | The access identity whose permissions are used to run the Lambda function. |
| [`CfnFunctionDefinitionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionProps) | Struct | Properties for defining a `CfnFunctionDefinition`. |
| [`CfnFunctionDefinitionVersion.DefaultConfigProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersion.DefaultConfigProperty) | Struct | The default configuration that applies to all Lambda functions in the function definition version. |
| [`CfnFunctionDefinitionVersion.EnvironmentProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersion.EnvironmentProperty) | Struct | The environment configuration for a Lambda function on the AWS IoT Greengrass core. |
| [`CfnFunctionDefinitionVersion.ExecutionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersion.ExecutionProperty) | Struct | Configuration settings for the Lambda execution environment on the AWS IoT Greengrass core. |
| [`CfnFunctionDefinitionVersion.FunctionConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersion.FunctionConfigurationProperty) | Struct | The group-specific configuration settings for a Lambda function. |
| [`CfnFunctionDefinitionVersion.FunctionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersion.FunctionProperty) | Struct | A function is a Lambda function that's referenced from an AWS IoT Greengrass group. |
| [`CfnFunctionDefinitionVersion.ResourceAccessPolicyProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersion.ResourceAccessPolicyProperty) | Struct | A list of the [resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) in the group that the function can access, with the corresponding read-only or read-write permissions. The maximum is 10 resources. |
| [`CfnFunctionDefinitionVersion.RunAsProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersion.RunAsProperty) | Struct | The user and group permissions used to run the Lambda function. |
| [`CfnFunctionDefinitionVersionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnFunctionDefinitionVersionProps) | Struct | Properties for defining a `CfnFunctionDefinitionVersion`. |
| [`CfnGroup.GroupVersionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnGroup.GroupVersionProperty) | Struct | A group version in AWS IoT Greengrass , which references of a core definition version, device definition version, subscription definition version, and other version types that contain the components you want to deploy to a Greengrass core device. |
| [`CfnGroupProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnGroupProps) | Struct | Properties for defining a `CfnGroup`. |
| [`CfnGroupVersionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnGroupVersionProps) | Struct | Properties for defining a `CfnGroupVersion`. |
| [`CfnLoggerDefinition.LoggerDefinitionVersionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnLoggerDefinition.LoggerDefinitionVersionProperty) | Struct | A logger definition version contains a list of [loggers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html) . |
| [`CfnLoggerDefinition.LoggerProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnLoggerDefinition.LoggerProperty) | Struct | A logger represents logging settings for the AWS IoT Greengrass group, which can be stored in CloudWatch and the local file system of your core device. |
| [`CfnLoggerDefinitionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnLoggerDefinitionProps) | Struct | Properties for defining a `CfnLoggerDefinition`. |
| [`CfnLoggerDefinitionVersion.LoggerProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnLoggerDefinitionVersion.LoggerProperty) | Struct | A logger represents logging settings for the AWS IoT Greengrass group, which can be stored in CloudWatch and the local file system of your core device. |
| [`CfnLoggerDefinitionVersionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnLoggerDefinitionVersionProps) | Struct | Properties for defining a `CfnLoggerDefinitionVersion`. |
| [`CfnResourceDefinition.GroupOwnerSettingProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.GroupOwnerSettingProperty) | Struct | Settings that define additional Linux OS group permissions to give to the Lambda function process. |
| [`CfnResourceDefinition.LocalDeviceResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.LocalDeviceResourceDataProperty) | Struct | Settings for a local device resource, which represents a file under `/dev` . |
| [`CfnResourceDefinition.LocalVolumeResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.LocalVolumeResourceDataProperty) | Struct | Settings for a local volume resource, which represents a file or directory on the root file system. |
| [`CfnResourceDefinition.ResourceDataContainerProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.ResourceDataContainerProperty) | Struct | A container for resource data, which defines the resource type. |
| [`CfnResourceDefinition.ResourceDefinitionVersionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.ResourceDefinitionVersionProperty) | Struct | A resource definition version contains a list of resources. (In CloudFormation , resources are named *resource instances* .). |
| [`CfnResourceDefinition.ResourceDownloadOwnerSettingProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.ResourceDownloadOwnerSettingProperty) | Struct | The owner setting for a downloaded machine learning resource. |
| [`CfnResourceDefinition.ResourceInstanceProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.ResourceInstanceProperty) | Struct | A local resource, machine learning resource, or secret resource. |
| [`CfnResourceDefinition.S3MachineLearningModelResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.S3MachineLearningModelResourceDataProperty) | Struct | Settings for an Amazon S3 machine learning resource. |
| [`CfnResourceDefinition.SageMakerMachineLearningModelResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.SageMakerMachineLearningModelResourceDataProperty) | Struct | Settings for an Secrets Manager machine learning resource. |
| [`CfnResourceDefinition.SecretsManagerSecretResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinition.SecretsManagerSecretResourceDataProperty) | Struct | Settings for a secret resource, which references a secret from AWS Secrets Manager . |
| [`CfnResourceDefinitionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionProps) | Struct | Properties for defining a `CfnResourceDefinition`. |
| [`CfnResourceDefinitionVersion.GroupOwnerSettingProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.GroupOwnerSettingProperty) | Struct | Settings that define additional Linux OS group permissions to give to the Lambda function process. |
| [`CfnResourceDefinitionVersion.LocalDeviceResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.LocalDeviceResourceDataProperty) | Struct | Settings for a local device resource, which represents a file under `/dev` . |
| [`CfnResourceDefinitionVersion.LocalVolumeResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.LocalVolumeResourceDataProperty) | Struct | Settings for a local volume resource, which represents a file or directory on the root file system. |
| [`CfnResourceDefinitionVersion.ResourceDataContainerProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.ResourceDataContainerProperty) | Struct | A container for resource data, which defines the resource type. |
| [`CfnResourceDefinitionVersion.ResourceDownloadOwnerSettingProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.ResourceDownloadOwnerSettingProperty) | Struct | The owner setting for a downloaded machine learning resource. |
| [`CfnResourceDefinitionVersion.ResourceInstanceProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.ResourceInstanceProperty) | Struct | A local resource, machine learning resource, or secret resource. |
| [`CfnResourceDefinitionVersion.S3MachineLearningModelResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.S3MachineLearningModelResourceDataProperty) | Struct | Settings for an Amazon S3 machine learning resource. |
| [`CfnResourceDefinitionVersion.SageMakerMachineLearningModelResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.SageMakerMachineLearningModelResourceDataProperty) | Struct | Settings for an Secrets Manager machine learning resource. |
| [`CfnResourceDefinitionVersion.SecretsManagerSecretResourceDataProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersion.SecretsManagerSecretResourceDataProperty) | Struct | Settings for a secret resource, which references a secret from AWS Secrets Manager . |
| [`CfnResourceDefinitionVersionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnResourceDefinitionVersionProps) | Struct | Properties for defining a `CfnResourceDefinitionVersion`. |
| [`CfnSubscriptionDefinition.SubscriptionDefinitionVersionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnSubscriptionDefinition.SubscriptionDefinitionVersionProperty) | Struct | A subscription definition version contains a list of [subscriptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html) . |
| [`CfnSubscriptionDefinition.SubscriptionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnSubscriptionDefinition.SubscriptionProperty) | Struct | Subscriptions define how MQTT messages can be exchanged between devices, functions, and connectors in the group, and with AWS IoT or the local shadow service. |
| [`CfnSubscriptionDefinitionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnSubscriptionDefinitionProps) | Struct | Properties for defining a `CfnSubscriptionDefinition`. |
| [`CfnSubscriptionDefinitionVersion.SubscriptionProperty`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnSubscriptionDefinitionVersion.SubscriptionProperty) | Struct | Subscriptions define how MQTT messages can be exchanged between devices, functions, and connectors in the group, and with AWS IoT or the local shadow service. |
| [`CfnSubscriptionDefinitionVersionProps`](/v2/docs/aws-cdk-lib.aws_greengrass.CfnSubscriptionDefinitionVersionProps) | Struct | Properties for defining a `CfnSubscriptionDefinitionVersion`. |
