import { Value } from '../../cloudformation/Value';
import { ConditionProps } from './eventbuspolicy/ConditionProps';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  Running <code>PutPermission</code> permits the specified AWS account or AWS organization to put events to the specified <em>event bus</em>. Amazon EventBridge (CloudWatch Events) rules in your account are triggered by these events arriving to an event bus in your account.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html">the AWS Docs</a>
*/
export type EventBusPolicy = AwsResource<'AWS::Events::EventBusPolicy', EventBusPolicyProperties>;
export declare function eventBusPolicy(eventBusPolicyProps: EventBusPolicyProperties): EventBusPolicy;
/**
  Running <code>PutPermission</code> permits the specified AWS account or AWS organization to put events to the specified <em>event bus</em>. Amazon EventBridge (CloudWatch Events) rules in your account are triggered by these events arriving to an event bus in your account.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html">the AWS Docs</a>
*/
export interface EventBusPolicyProperties {
    /** <code>EventBusName</code>  <a name="cfn-events-eventbuspolicy-eventbusname"></a>
  The name of the event bus associated with the rule. If you omit this, the default event bus is used.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>256</code><br />
  
  Pattern: <code>[\.\-_A-Za-z0-9]+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    eventBusName?: Value<string>;
    /** <code>Condition</code>  <a name="cfn-events-eventbuspolicy-condition"></a>
  This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization. For more information about AWS Organizations, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html">What Is AWS Organizations</a> in the * AWS Organizations User Guide*.<br />
  If you specify <code>Condition</code> with an AWS organization ID, and specify “*” as the value for <code>Principal</code>, you grant permission to all the accounts in the named organization.<br />
  The <code>Condition</code> is a JSON string which must contain <code>Type</code>, <code>Key</code>, and <code>Value</code> fields.<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> */
    condition?: ConditionProps;
    /** <code>Action</code>  <a name="cfn-events-eventbuspolicy-action"></a>
  The action that you are enabling the other account to perform.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>64</code><br />
  
  Pattern: <code>events:[a-zA-Z]+</code><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> */
    action?: Value<string>;
    /** <code>StatementId</code>  <a name="cfn-events-eventbuspolicy-statementid"></a>
  An identifier string for the external account that you are granting permissions to. If you later want to revoke the permission for this external account, specify this <code>StatementId</code> when you run <a href="https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RemovePermission.html">RemovePermission</a>.<br />
  Each <code>StatementId</code> must be unique.
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>64</code><br />
  
  Pattern: <code>[a-zA-Z0-9-_]+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    statementId: Value<string>;
    /** <code>Statement</code>  <a name="cfn-events-eventbuspolicy-statement"></a>
  A JSON string that describes the permission policy statement. You can include a <code>Policy</code> parameter in the request instead of using the <code>StatementId</code>, <code>Action</code>, <code>Principal</code>, or <code>Condition</code> parameters.<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> */
    statement?: Value<any>;
    /** <code>Principal</code>  <a name="cfn-events-eventbuspolicy-principal"></a>
  The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify “*” to permit any account to put events to your default event bus.<br />
  If you specify “*” without specifying <code>Condition</code>, avoid creating rules that may match undesirable events. To create more secure rules, make sure that the event pattern for each rule contains an <code>account</code> field with a specific account ID from which to receive events. Rules with an account field do not match any events sent from other accounts.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>12</code><br />
  
  Pattern: <code>(\d{12}|\*)</code><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> */
    principal?: Value<string>;
}
