import { ComponentRunWithProps } from './ComponentRunWithProps';
import { ComponentConfigurationUpdateProps } from './ComponentConfigurationUpdateProps';
import { Value } from '../../../cloudformation/Value';
/**
  Contains information about a component to deploy.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-deployment-componentdeploymentspecification.html">the AWS Docs</a>
*/
export interface ComponentDeploymentSpecificationProps {
    /** <code>RunWith</code>  <a name="cfn-greengrassv2-deployment-componentdeploymentspecification-runwith"></a>
  The system user and group that the software uses to run component processes on the core device. If you omit this parameter, the software uses the system user and group that you configure for the core device. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user">Configure the user and group that run components</a> in the
  AWS IoT Greengrass V2 Developer Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    runWith?: ComponentRunWithProps;
    /** <code>ConfigurationUpdate</code>  <a name="cfn-greengrassv2-deployment-componentdeploymentspecification-configurationupdate"></a>
  The configuration updates to deploy for the component. You can define reset updates and merge updates. A reset updates the keys that you specify to the default configuration for the component. A merge updates the core device’s component configuration with the keys and values that you specify. The AWS IoT Greengrass Core software applies reset updates before it applies merge updates. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html">Update component configuration</a>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    configurationUpdate?: ComponentConfigurationUpdateProps;
    /** <code>ComponentVersion</code>  <a name="cfn-greengrassv2-deployment-componentdeploymentspecification-componentversion"></a>
  The version of the component.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    componentVersion?: Value<string>;
}
