aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
88 lines (87 loc) • 3.32 kB
TypeScript
import { Construct } from 'constructs';
import { ICfnConditionExpression } from './cfn-condition';
import { CfnRefElement } from './cfn-element';
/**
* A rule can include a RuleCondition property and must include an Assertions property.
* For each rule, you can define only one rule condition; you can define one or more asserts within the Assertions property.
* You define a rule condition and assertions by using rule-specific intrinsic functions.
*
* You can use the following rule-specific intrinsic functions to define rule conditions and assertions:
*
* Fn::And
* Fn::Contains
* Fn::EachMemberEquals
* Fn::EachMemberIn
* Fn::Equals
* Fn::If
* Fn::Not
* Fn::Or
* Fn::RefAll
* Fn::ValueOf
* Fn::ValueOfAll
*
* https://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html
*/
export interface CfnRuleProps {
/**
* If the rule condition evaluates to false, the rule doesn't take effect.
* If the function in the rule condition evaluates to true, expressions in each assert are evaluated and applied.
*
* @default - Rule's assertions will always take effect.
*/
readonly ruleCondition?: ICfnConditionExpression;
/**
* Assertions which define the rule.
*
* @default - No assertions for the rule.
*/
readonly assertions?: CfnRuleAssertion[];
}
/**
* The Rules that define template constraints in an AWS Service Catalog portfolio describe when
* end users can use the template and which values they can specify for parameters that are declared
* in the AWS CloudFormation template used to create the product they are attempting to use. Rules
* are useful for preventing end users from inadvertently specifying an incorrect value.
* For example, you can add a rule to verify whether end users specified a valid subnet in a
* given VPC or used m1.small instance types for test environments. AWS CloudFormation uses
* rules to validate parameter values before it creates the resources for the product.
*
* A rule can include a RuleCondition property and must include an Assertions property.
* For each rule, you can define only one rule condition; you can define one or more asserts within the Assertions property.
* You define a rule condition and assertions by using rule-specific intrinsic functions.
*
* @link https://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html
*/
export declare class CfnRule extends CfnRefElement {
private ruleCondition?;
private assertions?;
/**
* Creates and adds a rule.
* @param scope The parent construct.
* @param props The rule props.
*/
constructor(scope: Construct, id: string, props?: CfnRuleProps);
/**
* Adds an assertion to the rule.
* @param condition The expression to evaluation.
* @param description The description of the assertion.
*/
addAssertion(condition: ICfnConditionExpression, description: string): void;
/**
* @internal
*/
_toCloudFormation(): object;
}
/**
* A rule assertion.
*/
export interface CfnRuleAssertion {
/**
* The assertion.
*/
readonly assert: ICfnConditionExpression;
/**
* The assertion description.
*/
readonly assertDescription: string;
}