/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GreengrassV2 { namespace Model { /** *

Contains information about an Lambda function to import to create a * component.

See Also:

AWS * API Reference

*/ class LambdaFunctionRecipeSource { public: AWS_GREENGRASSV2_API LambdaFunctionRecipeSource(); AWS_GREENGRASSV2_API LambdaFunctionRecipeSource(Aws::Utils::Json::JsonView jsonValue); AWS_GREENGRASSV2_API LambdaFunctionRecipeSource& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GREENGRASSV2_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The ARN * of the Lambda function. The ARN must include the version of the function to * import. You can't use version aliases like $LATEST.

*/ inline const Aws::String& GetLambdaArn() const{ return m_lambdaArn; } /** *

The ARN * of the Lambda function. The ARN must include the version of the function to * import. You can't use version aliases like $LATEST.

*/ inline bool LambdaArnHasBeenSet() const { return m_lambdaArnHasBeenSet; } /** *

The ARN * of the Lambda function. The ARN must include the version of the function to * import. You can't use version aliases like $LATEST.

*/ inline void SetLambdaArn(const Aws::String& value) { m_lambdaArnHasBeenSet = true; m_lambdaArn = value; } /** *

The ARN * of the Lambda function. The ARN must include the version of the function to * import. You can't use version aliases like $LATEST.

*/ inline void SetLambdaArn(Aws::String&& value) { m_lambdaArnHasBeenSet = true; m_lambdaArn = std::move(value); } /** *

The ARN * of the Lambda function. The ARN must include the version of the function to * import. You can't use version aliases like $LATEST.

*/ inline void SetLambdaArn(const char* value) { m_lambdaArnHasBeenSet = true; m_lambdaArn.assign(value); } /** *

The ARN * of the Lambda function. The ARN must include the version of the function to * import. You can't use version aliases like $LATEST.

*/ inline LambdaFunctionRecipeSource& WithLambdaArn(const Aws::String& value) { SetLambdaArn(value); return *this;} /** *

The ARN * of the Lambda function. The ARN must include the version of the function to * import. You can't use version aliases like $LATEST.

*/ inline LambdaFunctionRecipeSource& WithLambdaArn(Aws::String&& value) { SetLambdaArn(std::move(value)); return *this;} /** *

The ARN * of the Lambda function. The ARN must include the version of the function to * import. You can't use version aliases like $LATEST.

*/ inline LambdaFunctionRecipeSource& WithLambdaArn(const char* value) { SetLambdaArn(value); return *this;} /** *

The name of the component.

Defaults to the name of the Lambda * function.

*/ inline const Aws::String& GetComponentName() const{ return m_componentName; } /** *

The name of the component.

Defaults to the name of the Lambda * function.

*/ inline bool ComponentNameHasBeenSet() const { return m_componentNameHasBeenSet; } /** *

The name of the component.

Defaults to the name of the Lambda * function.

*/ inline void SetComponentName(const Aws::String& value) { m_componentNameHasBeenSet = true; m_componentName = value; } /** *

The name of the component.

Defaults to the name of the Lambda * function.

*/ inline void SetComponentName(Aws::String&& value) { m_componentNameHasBeenSet = true; m_componentName = std::move(value); } /** *

The name of the component.

Defaults to the name of the Lambda * function.

*/ inline void SetComponentName(const char* value) { m_componentNameHasBeenSet = true; m_componentName.assign(value); } /** *

The name of the component.

Defaults to the name of the Lambda * function.

*/ inline LambdaFunctionRecipeSource& WithComponentName(const Aws::String& value) { SetComponentName(value); return *this;} /** *

The name of the component.

Defaults to the name of the Lambda * function.

*/ inline LambdaFunctionRecipeSource& WithComponentName(Aws::String&& value) { SetComponentName(std::move(value)); return *this;} /** *

The name of the component.

Defaults to the name of the Lambda * function.

*/ inline LambdaFunctionRecipeSource& WithComponentName(const char* value) { SetComponentName(value); return *this;} /** *

The version of the component.

Defaults to the version of the Lambda * function as a semantic version. For example, if your function version is * 3, the component version becomes 3.0.0.

*/ inline const Aws::String& GetComponentVersion() const{ return m_componentVersion; } /** *

The version of the component.

Defaults to the version of the Lambda * function as a semantic version. For example, if your function version is * 3, the component version becomes 3.0.0.

*/ inline bool ComponentVersionHasBeenSet() const { return m_componentVersionHasBeenSet; } /** *

The version of the component.

Defaults to the version of the Lambda * function as a semantic version. For example, if your function version is * 3, the component version becomes 3.0.0.

*/ inline void SetComponentVersion(const Aws::String& value) { m_componentVersionHasBeenSet = true; m_componentVersion = value; } /** *

The version of the component.

Defaults to the version of the Lambda * function as a semantic version. For example, if your function version is * 3, the component version becomes 3.0.0.

*/ inline void SetComponentVersion(Aws::String&& value) { m_componentVersionHasBeenSet = true; m_componentVersion = std::move(value); } /** *

The version of the component.

Defaults to the version of the Lambda * function as a semantic version. For example, if your function version is * 3, the component version becomes 3.0.0.

*/ inline void SetComponentVersion(const char* value) { m_componentVersionHasBeenSet = true; m_componentVersion.assign(value); } /** *

The version of the component.

Defaults to the version of the Lambda * function as a semantic version. For example, if your function version is * 3, the component version becomes 3.0.0.

*/ inline LambdaFunctionRecipeSource& WithComponentVersion(const Aws::String& value) { SetComponentVersion(value); return *this;} /** *

The version of the component.

Defaults to the version of the Lambda * function as a semantic version. For example, if your function version is * 3, the component version becomes 3.0.0.

*/ inline LambdaFunctionRecipeSource& WithComponentVersion(Aws::String&& value) { SetComponentVersion(std::move(value)); return *this;} /** *

The version of the component.

Defaults to the version of the Lambda * function as a semantic version. For example, if your function version is * 3, the component version becomes 3.0.0.

*/ inline LambdaFunctionRecipeSource& WithComponentVersion(const char* value) { SetComponentVersion(value); return *this;} /** *

The platforms that the component version supports.

*/ inline const Aws::Vector& GetComponentPlatforms() const{ return m_componentPlatforms; } /** *

The platforms that the component version supports.

*/ inline bool ComponentPlatformsHasBeenSet() const { return m_componentPlatformsHasBeenSet; } /** *

The platforms that the component version supports.

*/ inline void SetComponentPlatforms(const Aws::Vector& value) { m_componentPlatformsHasBeenSet = true; m_componentPlatforms = value; } /** *

The platforms that the component version supports.

*/ inline void SetComponentPlatforms(Aws::Vector&& value) { m_componentPlatformsHasBeenSet = true; m_componentPlatforms = std::move(value); } /** *

The platforms that the component version supports.

*/ inline LambdaFunctionRecipeSource& WithComponentPlatforms(const Aws::Vector& value) { SetComponentPlatforms(value); return *this;} /** *

The platforms that the component version supports.

*/ inline LambdaFunctionRecipeSource& WithComponentPlatforms(Aws::Vector&& value) { SetComponentPlatforms(std::move(value)); return *this;} /** *

The platforms that the component version supports.

*/ inline LambdaFunctionRecipeSource& AddComponentPlatforms(const ComponentPlatform& value) { m_componentPlatformsHasBeenSet = true; m_componentPlatforms.push_back(value); return *this; } /** *

The platforms that the component version supports.

*/ inline LambdaFunctionRecipeSource& AddComponentPlatforms(ComponentPlatform&& value) { m_componentPlatformsHasBeenSet = true; m_componentPlatforms.push_back(std::move(value)); return *this; } /** *

The component versions on which this Lambda function component depends.

*/ inline const Aws::Map& GetComponentDependencies() const{ return m_componentDependencies; } /** *

The component versions on which this Lambda function component depends.

*/ inline bool ComponentDependenciesHasBeenSet() const { return m_componentDependenciesHasBeenSet; } /** *

The component versions on which this Lambda function component depends.

*/ inline void SetComponentDependencies(const Aws::Map& value) { m_componentDependenciesHasBeenSet = true; m_componentDependencies = value; } /** *

The component versions on which this Lambda function component depends.

*/ inline void SetComponentDependencies(Aws::Map&& value) { m_componentDependenciesHasBeenSet = true; m_componentDependencies = std::move(value); } /** *

The component versions on which this Lambda function component depends.

*/ inline LambdaFunctionRecipeSource& WithComponentDependencies(const Aws::Map& value) { SetComponentDependencies(value); return *this;} /** *

The component versions on which this Lambda function component depends.

*/ inline LambdaFunctionRecipeSource& WithComponentDependencies(Aws::Map&& value) { SetComponentDependencies(std::move(value)); return *this;} /** *

The component versions on which this Lambda function component depends.

*/ inline LambdaFunctionRecipeSource& AddComponentDependencies(const Aws::String& key, const ComponentDependencyRequirement& value) { m_componentDependenciesHasBeenSet = true; m_componentDependencies.emplace(key, value); return *this; } /** *

The component versions on which this Lambda function component depends.

*/ inline LambdaFunctionRecipeSource& AddComponentDependencies(Aws::String&& key, const ComponentDependencyRequirement& value) { m_componentDependenciesHasBeenSet = true; m_componentDependencies.emplace(std::move(key), value); return *this; } /** *

The component versions on which this Lambda function component depends.

*/ inline LambdaFunctionRecipeSource& AddComponentDependencies(const Aws::String& key, ComponentDependencyRequirement&& value) { m_componentDependenciesHasBeenSet = true; m_componentDependencies.emplace(key, std::move(value)); return *this; } /** *

The component versions on which this Lambda function component depends.

*/ inline LambdaFunctionRecipeSource& AddComponentDependencies(Aws::String&& key, ComponentDependencyRequirement&& value) { m_componentDependenciesHasBeenSet = true; m_componentDependencies.emplace(std::move(key), std::move(value)); return *this; } /** *

The component versions on which this Lambda function component depends.

*/ inline LambdaFunctionRecipeSource& AddComponentDependencies(const char* key, ComponentDependencyRequirement&& value) { m_componentDependenciesHasBeenSet = true; m_componentDependencies.emplace(key, std::move(value)); return *this; } /** *

The component versions on which this Lambda function component depends.

*/ inline LambdaFunctionRecipeSource& AddComponentDependencies(const char* key, const ComponentDependencyRequirement& value) { m_componentDependenciesHasBeenSet = true; m_componentDependencies.emplace(key, value); return *this; } /** *

The system and runtime parameters for the Lambda function as it runs on the * Greengrass core device.

*/ inline const LambdaExecutionParameters& GetComponentLambdaParameters() const{ return m_componentLambdaParameters; } /** *

The system and runtime parameters for the Lambda function as it runs on the * Greengrass core device.

*/ inline bool ComponentLambdaParametersHasBeenSet() const { return m_componentLambdaParametersHasBeenSet; } /** *

The system and runtime parameters for the Lambda function as it runs on the * Greengrass core device.

*/ inline void SetComponentLambdaParameters(const LambdaExecutionParameters& value) { m_componentLambdaParametersHasBeenSet = true; m_componentLambdaParameters = value; } /** *

The system and runtime parameters for the Lambda function as it runs on the * Greengrass core device.

*/ inline void SetComponentLambdaParameters(LambdaExecutionParameters&& value) { m_componentLambdaParametersHasBeenSet = true; m_componentLambdaParameters = std::move(value); } /** *

The system and runtime parameters for the Lambda function as it runs on the * Greengrass core device.

*/ inline LambdaFunctionRecipeSource& WithComponentLambdaParameters(const LambdaExecutionParameters& value) { SetComponentLambdaParameters(value); return *this;} /** *

The system and runtime parameters for the Lambda function as it runs on the * Greengrass core device.

*/ inline LambdaFunctionRecipeSource& WithComponentLambdaParameters(LambdaExecutionParameters&& value) { SetComponentLambdaParameters(std::move(value)); return *this;} private: Aws::String m_lambdaArn; bool m_lambdaArnHasBeenSet = false; Aws::String m_componentName; bool m_componentNameHasBeenSet = false; Aws::String m_componentVersion; bool m_componentVersionHasBeenSet = false; Aws::Vector m_componentPlatforms; bool m_componentPlatformsHasBeenSet = false; Aws::Map m_componentDependencies; bool m_componentDependenciesHasBeenSet = false; LambdaExecutionParameters m_componentLambdaParameters; bool m_componentLambdaParametersHasBeenSet = false; }; } // namespace Model } // namespace GreengrassV2 } // namespace Aws