# CfnComponentVersionProps

Properties for defining a `CfnComponentVersion`.

Extends: CfnComponentVersionProps
Used as props by: CfnComponentVersion

- Source: Generated code

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_greengrassv2 as greengrassv2 } from 'aws-cdk-lib';
const cfnComponentVersionProps: greengrassv2.CfnComponentVersionProps = {
  inlineRecipe: 'inlineRecipe',
  lambdaFunction: {
    componentDependencies: {
      componentDependenciesKey: {
        dependencyType: 'dependencyType',
        versionRequirement: 'versionRequirement',
      },
    },
    componentLambdaParameters: {
      environmentVariables: {
        environmentVariablesKey: 'environmentVariables',
      },
      eventSources: [{
        topic: 'topic',
        type: 'type',
      }],
      execArgs: ['execArgs'],
      inputPayloadEncodingType: 'inputPayloadEncodingType',
      linuxProcessParams: {
        containerParams: {
          devices: [{
            addGroupOwner: false,
            path: 'path',
            permission: 'permission',
          }],
          memorySizeInKb: 123,
          mountRoSysfs: false,
          volumes: [{
            addGroupOwner: false,
            destinationPath: 'destinationPath',
            permission: 'permission',
            sourcePath: 'sourcePath',
          }],
        },
        isolationMode: 'isolationMode',
      },
      maxIdleTimeInSeconds: 123,
      maxInstancesCount: 123,
      maxQueueSize: 123,
      pinned: false,
      statusTimeoutInSeconds: 123,
      timeoutInSeconds: 123,
    },
    componentName: 'componentName',
    componentPlatforms: [{
      attributes: {
        attributesKey: 'attributes',
      },
      name: 'name',
    }],
    componentVersion: 'componentVersion',
    lambdaArn: 'lambdaArn',
  },
  tags: {
    tagsKey: 'tags',
  },
};
```

## Properties

- `inlineRecipe`: string — The recipe to use to create the component.

  The recipe defines the component's metadata, parameters, dependencies, lifecycle, artifacts, and platform compatibility.

  You must specify either `InlineRecipe` or `LambdaFunction` .

- `lambdaFunction`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnComponentVersion.LambdaFunctionRecipeSourceProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_greengrassv2.CfnComponentVersion.LambdaFunctionRecipeSourceProperty.html) — The parameters to create a component from a Lambda function.

  You must specify either `InlineRecipe` or `LambdaFunction` .

- `tags`: { [key: string]: string } — Application-specific metadata to attach to the component version.

  You can use tags in IAM policies to control access to AWS IoT Greengrass resources. You can also use tags to categorize your resources. For more information, see [Tag your AWS IoT Greengrass Version 2 resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html) in the *AWS IoT Greengrass V2 Developer Guide* .

  This `Json` property type is processed as a map of key-value pairs. It uses the following format, which is different from most `Tags` implementations in CloudFormation templates.

  ```json
  "Tags": { "KeyName0": "value", "KeyName1": "value", "KeyName2": "value"
  }
  ```
