---
search:
  exclude: true
---

# <a id="bitdrift.public.unary.workflows.v1.GenericMatch"></a>GenericMatch

**Source definition:** [`src/bitdrift/public/unary/workflows/v1/workflow.proto#L356-L423`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/workflows/v1/workflow.proto#L356-L423>)

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| base_matcher | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatch</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatchCondition</i>](#bitdrift.public.unary.workflows.v1.GenericMatch.GenericMatchCondition "bitdrift.public.unary.workflows.v1.GenericMatch.GenericMatchCondition")</span><span class="proto-field-annotation">(Only one of <em>base_matcher</em>, or <em>or_matcher</em>, <em>and_matcher</em>, <em>not_matcher</em> can be set)</span> | A single predicate to evaluate. |
| or_matcher | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatch</i><i class="proto-type-dot">.</i><i class="proto-type-part">MatcherList</i>](#bitdrift.public.unary.workflows.v1.GenericMatch.MatcherList "bitdrift.public.unary.workflows.v1.GenericMatch.MatcherList")</span><span class="proto-field-annotation">(Only one of <em>or_matcher</em>, or <em>base_matcher</em>, <em>and_matcher</em>, <em>not_matcher</em> can be set)</span> | A list of predicates to be OR-ed together. |
| and_matcher | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatch</i><i class="proto-type-dot">.</i><i class="proto-type-part">MatcherList</i>](#bitdrift.public.unary.workflows.v1.GenericMatch.MatcherList "bitdrift.public.unary.workflows.v1.GenericMatch.MatcherList")</span><span class="proto-field-annotation">(Only one of <em>and_matcher</em>, or <em>base_matcher</em>, <em>or_matcher</em>, <em>not_matcher</em> can be set)</span> | A list of predicates to be AND-ed together. |
| not_matcher | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatch</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatchCondition</i>](#bitdrift.public.unary.workflows.v1.GenericMatch.GenericMatchCondition "bitdrift.public.unary.workflows.v1.GenericMatch.GenericMatchCondition")</span><span class="proto-field-annotation">(Only one of <em>not_matcher</em>, or <em>base_matcher</em>, <em>or_matcher</em>, <em>and_matcher</em> can be set)</span> | An inversion of a predicate. |

</section>
#### Example
```json
{
  "base_matcher": {
    "log_field": "field_name",
    "operator": "EQUAL",
    "string_value": "example"
  }
}
```

# <a id="bitdrift.public.unary.workflows.v1.GenericMatch.GenericMatchCondition"></a>GenericMatch.GenericMatchCondition

**Source definition:** [`src/bitdrift/public/unary/workflows/v1/workflow.proto#L357-L402`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/workflows/v1/workflow.proto#L357-L402>)

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| log_field | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">up to 100 chars</em><span class="proto-field-annotation">(Only one of <em>log_field</em>, or <em>log_body</em>, <em>log_field_json_path</em>, <em>state_key</em> can be set)</span> | Match against a log field. |
| log_body | <span class="proto-type proto-type-primitive">bool</span><span class="proto-field-annotation">(Only one of <em>log_body</em>, or <em>log_field</em>, <em>log_field_json_path</em>, <em>state_key</em> can be set)</span> | Match against the log body. |
| log_field_json_path | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">up to 255 chars</em><span class="proto-field-annotation">(Only one of <em>log_field_json_path</em>, or <em>log_field</em>, <em>log_body</em>, <em>state_key</em> can be set)</span> | Match against a JSON path expression inside a log field. |
| state_key | <span class="proto-type proto-type-message">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatch</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatchCondition</i><i class="proto-type-dot">.</i><i class="proto-type-part">StateKey</i>](#bitdrift.public.unary.workflows.v1.GenericMatch.GenericMatchCondition.StateKey "bitdrift.public.unary.workflows.v1.GenericMatch.GenericMatchCondition.StateKey")</span><span class="proto-field-annotation">(Only one of <em>state_key</em>, or <em>log_field</em>, <em>log_body</em>, <em>log_field_json_path</em> can be set)</span> | A state value specified by the scope and key. |
| operator | <span class="proto-type proto-type-enum">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">Operator</i>](bitdrift_public_unary_workflows_v1_Operator.md "bitdrift.public.unary.workflows.v1.Operator")</span><br><em class="proto-field-annotation">must be a defined enum value</em> | The operator of the conditional. |
| string_value | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">up to 512 chars</em><span class="proto-field-annotation">(Only one of <em>string_value</em>, or <em>semver_value</em>, <em>int_value</em>, <em>double_value</em>, <em>saved_field_id</em> can be set)</span> | A string value to match against. |
| semver_value | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">up to 255 chars</em><span class="proto-field-annotation">(Only one of <em>semver_value</em>, or <em>string_value</em>, <em>int_value</em>, <em>double_value</em>, <em>saved_field_id</em> can be set)</span> | A semantic version value to match against. |
| int_value | <span class="proto-type proto-type-primitive">int32</span><span class="proto-field-annotation">(Only one of <em>int_value</em>, or <em>string_value</em>, <em>semver_value</em>, <em>double_value</em>, <em>saved_field_id</em> can be set)</span> | An integer value to match against. |
| double_value | <span class="proto-type proto-type-primitive">double</span><span class="proto-field-annotation">(Only one of <em>double_value</em>, or <em>string_value</em>, <em>semver_value</em>, <em>int_value</em>, <em>saved_field_id</em> can be set)</span> | A double value to match against. |
| saved_field_id | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">up to 100 chars</em><span class="proto-field-annotation">(Only one of <em>saved_field_id</em>, or <em>string_value</em>, <em>semver_value</em>, <em>int_value</em>, <em>double_value</em> can be set)</span> | A reference to a value saved from a previous match rule. |

</section>
#### Example
```json
{
  "log_field": "field_name",
  "operator": "EQUAL",
  "string_value": "example"
}
```

# <a id="bitdrift.public.unary.workflows.v1.GenericMatch.GenericMatchCondition.StateKey"></a>GenericMatch.GenericMatchCondition.StateKey

**Source definition:** [`src/bitdrift/public/unary/workflows/v1/workflow.proto#L358-L364`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/workflows/v1/workflow.proto#L358-L364>)

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| scope | <span class="proto-type proto-type-enum">[<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">StateScope</i>](bitdrift_public_unary_workflows_v1_StateScope.md "bitdrift.public.unary.workflows.v1.StateScope")</span><br><em class="proto-field-annotation">must be a defined enum value</em> | The scope of the state key to look up. |
| key | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">up to 100 chars</em> | The key within the given scope to read the value from. |

</section>
#### Example
```json
{
  "key": "example-key",
  "scope": "GLOBAL_STATE"
}
```

# <a id="bitdrift.public.unary.workflows.v1.GenericMatch.MatcherList"></a>GenericMatch.MatcherList

**Source definition:** [`src/bitdrift/public/unary/workflows/v1/workflow.proto#L405-L408`](<https://github.com/bitdriftlabs/api/blob/main/src/bitdrift/public/unary/workflows/v1/workflow.proto#L405-L408>)

A list of two or more matchers. Used to allow using a list within a oneof for and/or matching.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| matchers | <span class="proto-type proto-type-message">array of [<i class="proto-type-part">bitdrift</i><i class="proto-type-dot">.</i><i class="proto-type-part">public</i><i class="proto-type-dot">.</i><i class="proto-type-part">unary</i><i class="proto-type-dot">.</i><i class="proto-type-part">workflows</i><i class="proto-type-dot">.</i><i class="proto-type-part">v1</i><i class="proto-type-dot">.</i><i class="proto-type-part">GenericMatch</i>](#bitdrift.public.unary.workflows.v1.GenericMatch "bitdrift.public.unary.workflows.v1.GenericMatch")</span><br><em class="proto-field-annotation">up to 100 items</em> | The child matchers to evaluate together. |

</section>
#### Example
```json
{
  "matchers": [
    {
      "base_matcher": {
        "log_field": "field_name",
        "operator": "EQUAL",
        "string_value": "example"
      }
    }
  ]
}
```

