> Documentation index: https://www.gooddata.ai/docs/gooddata-ui/llms.txt lists every page of these docs as Markdown.

# Condition

- Package: [@gooddata/sdk-model](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/index.md)
- Kind: type-alias
- Stability: alpha
- Source: https://github.com/gooddata/gooddata-ui-sdk/blob/rel/11.64/libs/sdk-model/src/pluggableApplication/index.ts

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Logical condition for evaluating requirement properties.

Supports composable AND/OR logic for determining whether an application should be accessible. Conditions can be nested arbitrarily to express complex boolean expressions.

There are three forms:

1. \*\*Plain object (implicit AND)\*\* — all specified properties must match their expected values.  This is the simplest form and is backwards compatible with the original flat object types.  Example:  { canInitData: true, canRefreshData: true } // both must be true

2. \*\*$or condition\*\* — at least one of the nested conditions must be satisfied.  Example:  { $or: [{ canInitData: true }, { canRefreshData: true }] } // either one suffices

3. \*\*$and condition\*\* — all nested conditions must be satisfied. Useful when composing  with $or at deeper levels to express grouped AND clauses.  Example:  {  $or: [  { $and: [{ canInitData: true }, { canManageProject: true }] },  { canRefreshData: true },  ]  }

**Signature:**

```typescript
export type Condition<T> = T | IConditionOr<T> | IConditionAnd<T>;
```
**References:** [IConditionOr](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.iconditionor/index.md), [IConditionAnd](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.iconditionand/index.md)
