- All Superinterfaces:
- IResolvable, software.amazon.jsii.JsiiSerializable
- All Known Implementing Classes:
- CfnCondition, ICfnConditionExpression.Jsii$Proxy
@Generated(value="jsii-pacmak/0.14.3 (build 1b1062d)",
date="2019-08-14T08:10:20.283Z")
@Stability(value=Stable)
public interface ICfnConditionExpression
extends software.amazon.jsii.JsiiSerializable, IResolvable
Represents a CloudFormation element that can be used within a Condition.
You can use intrinsic functions, such as ``Fn.conditionIf``,
``Fn.conditionEquals``, and ``Fn.conditionNot``, to conditionally create
stack resources. These conditions are evaluated based on input parameters
that you declare when you create or update a stack. After you define all your
conditions, you can associate them with resources or resource properties in
the Resources and Outputs sections of a template.
You define all conditions in the Conditions section of a template except for
``Fn.conditionIf`` conditions. You can use the ``Fn.conditionIf`` condition
in the metadata attribute, update policy attribute, and property values in
the Resources section and Outputs sections of a template.
You might use conditions when you want to reuse a template that can create
resources in different contexts, such as a test environment versus a
production environment. In your template, you can add an EnvironmentType
input parameter, which accepts either prod or test as inputs. For the
production environment, you might include Amazon EC2 instances with certain
capabilities; however, for the test environment, you want to use less
capabilities to save costs. With conditions, you can define which resources
are created and how they're configured for each environment type.
You can use `toString` when you wish to embed a condition expression
in a property value that accepts a `string`. For example:
```ts
new sqs.Queue(this, 'MyQueue', {
queueName: Fn.conditionIf('Condition', 'Hello', 'World').toString()
});
```