# <a id="bitdrift.public.unary.issues.v1.AdvancedFilter"></a>AdvancedFilter

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

Defines advanced filtering for issue groups.

 Each condition specifies a filter key, an operator, and a right-hand-side
 value. Depending on the selected field and operator, the right-hand side can
 represent a string, a semantic version, or another documented field-specific
 value.

 Conditions within each OrCondition are ORed together, and the list of
 OrConditions is ANDed together. For example:
 [condition1 OR condition2] AND [condition3] AND [condition4]

 AdvancedFilter {
  andConditions:
   [
     OrCondition{
       orConditions: [
         Condition{lhsTyped: LHS_TYPED_APP_ID, operator: EQUAL, rhs: "com.example.app"},
         Condition{lhsTyped: LHS_TYPED_APP_ID, operator: EQUAL, rhs: "com.example.app2"}
       ]
     },
     OrCondition{orConditions: [Condition{lhsTyped: LHS_TYPED_PLATFORM, operator: EQUAL, rhs: "ANDROID"}]}
   ]
 }

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| and_conditions | <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">issues</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">AdvancedFilter</i><i class="proto-type-dot">.</i><i class="proto-type-part">OrCondition</i>](#bitdrift.public.unary.issues.v1.AdvancedFilter.OrCondition "bitdrift.public.unary.issues.v1.AdvancedFilter.OrCondition")</span><br><em class="proto-field-annotation">up to 100 items</em> |  |

</section>
<p class="h4">Example</p>
```json
{
  "and_conditions": [
    {
      "or_conditions": [
        {
          "lhs_typed": "LHS_TYPED_APP_ID",
          "operator": "EQUAL",
          "rhs": "com.example.app"
        }
      ]
    }
  ]
}
```

# <a id="bitdrift.public.unary.issues.v1.AdvancedFilter.Condition"></a>AdvancedFilter.Condition

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

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| lhs_typed | <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">issues</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">AdvancedFilter</i><i class="proto-type-dot">.</i><i class="proto-type-part">Condition</i><i class="proto-type-dot">.</i><i class="proto-type-part">LhsTyped</i>](#bitdrift.public.unary.issues.v1.AdvancedFilter.Condition.LhsTyped "bitdrift.public.unary.issues.v1.AdvancedFilter.Condition.LhsTyped")</span><br><em class="proto-field-annotation">must be a defined enum value</em> | The filter key to match against. |
| 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">common</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_common_v1_Operator.md "bitdrift.public.unary.common.v1.Operator")</span><br><em class="proto-field-annotation">must be a defined enum value</em> |  |
| rhs | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">up to 255 chars</em> |  |

</section>
<p class="h4">Example</p>
```json
{
  "lhs_typed": "LHS_TYPED_APP_ID",
  "operator": "EQUAL",
  "rhs": "com.example.app"
}
```

# <a id="bitdrift.public.unary.issues.v1.AdvancedFilter.Condition.LhsTyped"></a>AdvancedFilter.Condition.LhsTyped <em class="proto-enum">Enum</em>

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

| Name | Description |
|---|---|
| LHS_TYPED_UNSPECIFIED |  |
| LHS_TYPED_APP_ID | App ID associated with the issue. |
| LHS_TYPED_PLATFORM | Platform on which the issue occurred. |
| LHS_TYPED_APP_VERSION | App version associated with the issue. This works well with version comparison operators. |
| LHS_TYPED_OS_VERSION | Operating system version associated with the issue. |
| LHS_TYPED_MODEL | Device model associated with the issue. |
| LHS_TYPED_REASON | Primary issue reason, such as an exception class or signal name. |
| LHS_TYPED_CONTEXT | Additional issue context, such as a file name or function name. |
| LHS_TYPED_REPORT_TYPE | High-level issue report type, such as Crash, ANR, or Exception. |
| LHS_TYPED_BUILD_ID | iOS build ID associated with the issue. This corresponds to CFBundleVersion. |
| LHS_TYPED_VERSION_CODE | Android versionCode associated with the issue. |

# <a id="bitdrift.public.unary.issues.v1.AdvancedFilter.OrCondition"></a>AdvancedFilter.OrCondition

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

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| or_conditions | <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">issues</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">AdvancedFilter</i><i class="proto-type-dot">.</i><i class="proto-type-part">Condition</i>](#bitdrift.public.unary.issues.v1.AdvancedFilter.Condition "bitdrift.public.unary.issues.v1.AdvancedFilter.Condition")</span><br><em class="proto-field-annotation">up to 100 items</em> | The conditions that are ORed together. |

</section>
<p class="h4">Example</p>
```json
{
  "or_conditions": [
    {
      "lhs_typed": "LHS_TYPED_APP_ID",
      "operator": "EQUAL",
      "rhs": "com.example.app"
    }
  ]
}
```

