import { LoggingProps } from './LoggingProps';
import { BackendProps } from './BackendProps';
import { ListenerProps } from './ListenerProps';
import { BackendDefaultsProps } from './BackendDefaultsProps';
import { ServiceDiscoveryProps } from './ServiceDiscoveryProps';
/**
  An object that represents the specification of a virtual node.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html">the AWS Docs</a>
*/
export interface VirtualNodeSpecProps {
    /** <code>Logging</code>  <a name="cfn-appmesh-virtualnode-virtualnodespec-logging"></a>
  The inbound and outbound access logging information for the virtual node.<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> */
    logging?: LoggingProps;
    /** <code>Backends</code>  <a name="cfn-appmesh-virtualnode-virtualnodespec-backends"></a>
  The backends that the virtual node is expected to send outbound traffic to.<br />
  App Mesh doesn’t validate the existence of those virtual services specified in backends. This is to prevent a cyclic dependency between virtual nodes and virtual services creation. Make sure the virtual service name is correct. The virtual service can be created afterwards if it doesn’t already exist.
  
  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> */
    backends?: BackendProps[];
    /** <code>Listeners</code>  <a name="cfn-appmesh-virtualnode-virtualnodespec-listeners"></a>
  The listener that the virtual node is expected to receive inbound traffic from. You can specify one listener.<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> */
    listeners?: ListenerProps[];
    /** <code>BackendDefaults</code>  <a name="cfn-appmesh-virtualnode-virtualnodespec-backenddefaults"></a>
  A reference to an object that represents the defaults for backends.<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> */
    backendDefaults?: BackendDefaultsProps;
    /** <code>ServiceDiscovery</code>  <a name="cfn-appmesh-virtualnode-virtualnodespec-servicediscovery"></a>
  The service discovery information for the virtual node. If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a <code>listener</code>, then you must specify service discovery information.<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> */
    serviceDiscovery?: ServiceDiscoveryProps;
}
