import { Value } from '../../../cloudformation/Value';
/**
  <a name="aws-properties-greengrass-subscriptiondefinitionversion-subscription-description"></a>Subscriptions define how MQTT messages can be exchanged between devices, functions, and connectors in the group, and with AWS IoT or the local shadow service. A subscription defines a message source, message target, and a topic (or subject) that’s used to route messages from the source to the target. A subscription defines the message flow in one direction, from the source to the target. For two-way communication, you must set up two subscriptions, one for each direction.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html">the AWS Docs</a>
*/
export interface SubscriptionProps {
    /** <code>Target</code>  <a name="cfn-greengrass-subscriptiondefinitionversion-subscription-target"></a>
  The destination of the message. The value can be a thing ARN, the ARN of a Lambda function alias (recommended) or version, a connector ARN, <code>cloud</code> (which represents the AWS IoT cloud), or <code>GGShadowService</code>.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    target: Value<string>;
    /** <code>Id</code>  <a name="cfn-greengrass-subscriptiondefinitionversion-subscription-id"></a>
  A descriptive or arbitrary ID for the subscription. This value must be unique within the subscription definition version. Maximum length is 128 characters with pattern <code>[a-zA-Z0-9:_-]+</code>.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    id: Value<string>;
    /** <code>Source</code>  <a name="cfn-greengrass-subscriptiondefinitionversion-subscription-source"></a>
  The originator of the message. The value can be a thing ARN, the ARN of a Lambda function alias (recommended) or version, a connector ARN, <code>cloud</code> (which represents the AWS IoT cloud), or <code>GGShadowService</code>.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    source: Value<string>;
    /** <code>Subject</code>  <a name="cfn-greengrass-subscriptiondefinitionversion-subscription-subject"></a>
  The MQTT topic used to route the message.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    subject: Value<string>;
}
