import { Value } from '../../../cloudformation/Value';
import { ApplicationVersionLifecycleConfigProps } from './ApplicationVersionLifecycleConfigProps';
/**
  The resource lifecycle configuration for an application. Defines lifecycle settings for resources that belong to the application, and the service role that Elastic Beanstalk assumes in order to apply lifecycle settings. The version lifecycle configuration defines lifecycle settings for application versions.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html">the AWS Docs</a>
*/
export interface ApplicationResourceLifecycleConfigProps {
    /** <code>ServiceRole</code>  <a name="cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-servicerole"></a>
  The ARN of an IAM service role that Elastic Beanstalk has permission to assume.<br />
  The <code>ServiceRole</code> property is required the first time that you provide a <code>ResourceLifecycleConfig</code> for the application. After you provide it once, Elastic Beanstalk persists the Service Role with the application, and you don’t need to specify it again. You can, however, specify it in subsequent updates to change the Service Role to another value.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    serviceRole?: Value<string>;
    /** <code>VersionLifecycleConfig</code>  <a name="cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-versionlifecycleconfig"></a>
  Defines lifecycle settings for application versions.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    versionLifecycleConfig?: ApplicationVersionLifecycleConfigProps;
}
