# <a id="bitdrift.public.unary.admin.v1.UpsertViewRequest"></a>UpsertViewRequest

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

Request to upsert a view.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| insert | <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">admin</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">UpsertViewRequest</i><i class="proto-type-dot">.</i><i class="proto-type-part">Insert</i>](#bitdrift.public.unary.admin.v1.UpsertViewRequest.Insert "bitdrift.public.unary.admin.v1.UpsertViewRequest.Insert")</span><span class="proto-field-annotation">only one of <em>insert</em>, or <em>update</em> can be set</span> | Creates a new view. |
| update | <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">admin</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">UpsertViewRequest</i><i class="proto-type-dot">.</i><i class="proto-type-part">Update</i>](#bitdrift.public.unary.admin.v1.UpsertViewRequest.Update "bitdrift.public.unary.admin.v1.UpsertViewRequest.Update")</span><span class="proto-field-annotation">only one of <em>update</em>, or <em>insert</em> can be set</span> | Updates an existing view. Only provided fields are changed. |

</section>
<p class="h4">Example</p>
<div class="proto-json-blob"><pre><code>{
  "insert": {
    "default_sort": {
      "sort": [
        {
          "issue_group": {
            "direction": "DESCENDING",
            "key": "MOST_RECENT_OCCURRENCE"
          }
        }
      ]
    },
    "description": "Tracks unresolved crashes in the iOS app.",
    "icon": {
      "icon_name": "ph:bug"
    },
    "name": "Open iOS Crashes",
    "view_filters": {
      "issue_group_list_new": {
        "issue_group_query": {
          "assignee": [
            {
              "email": "user@example.com",
              "id": "usr_abc123",
              "name": "Jane Doe"
            }
          ],
          "issue_group_status": [
            "NEW"
          ]
        },
        "issue_query": {
          "advanced_filters": {
            "and_conditions": [
              {
                "or_conditions": [
                  {
                    "lhs_typed": "LHS_TYPED_APP_ID",
                    "operator": "EQUAL",
                    "rhs": "com.example.app"
                  }
                ]
              }
            ]
          },
          "feature_flag_filters": [
            {
              "exclusive": false,
              "name": "checkout_v2",
              "variant": "enabled"
            }
          ],
          "grouping_key": [
            "12710232306638153143"
          ],
          "platforms": [
            {
              "apple": {
                "apps": [
                  {
                    "app_id": "com.example.app"
                  }
                ]
              }
            }
          ],
          "time_range": {
            "relative_time_range": {
              "duration": "3600s",
              "offset": "3600s"
            }
          }
        }
      }
    }
  }
}</code></pre></div>

# <a id="bitdrift.public.unary.admin.v1.UpsertViewRequest.Insert"></a>UpsertViewRequest.Insert

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

The values to use when creating a view.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| name | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">between 1 and 255 chars</em> | The name of the new view. |
| description | <span class="proto-type proto-type-primitive">optional string</span><br><em class="proto-field-annotation">up to 1000 chars</em> | An optional description of the new view. |
| view_filters | <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">admin</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">ViewFilters</i>](bitdrift_public_unary_admin_v1_ViewFilters.md "bitdrift.public.unary.admin.v1.ViewFilters")</span> | The saved filters for the new view. |
| default_sort | <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">admin</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">ViewSortList</i>](bitdrift_public_unary_admin_v1_ViewSortList.md "bitdrift.public.unary.admin.v1.ViewSortList")</span> | The default sort order for the new view. |
| icon | <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">admin</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">View</i><i class="proto-type-dot">.</i><i class="proto-type-part">ViewIcon</i>](bitdrift_public_unary_admin_v1_View.md "bitdrift.public.unary.admin.v1.View.ViewIcon")</span> | An optional icon to display for the new view. |

</section>
<p class="h4">Example</p>
<div class="proto-json-blob"><pre><code>{
  "default_sort": {
    "sort": [
      {
        "issue_group": {
          "direction": "DESCENDING",
          "key": "MOST_RECENT_OCCURRENCE"
        }
      }
    ]
  },
  "description": "Tracks unresolved crashes in the iOS app.",
  "icon": {
    "icon_name": "ph:bug"
  },
  "name": "Open iOS Crashes",
  "view_filters": {
    "issue_group_list_new": {
      "issue_group_query": {
        "assignee": [
          {
            "email": "user@example.com",
            "id": "usr_abc123",
            "name": "Jane Doe"
          }
        ],
        "issue_group_status": [
          "NEW"
        ]
      },
      "issue_query": {
        "advanced_filters": {
          "and_conditions": [
            {
              "or_conditions": [
                {
                  "lhs_typed": "LHS_TYPED_APP_ID",
                  "operator": "EQUAL",
                  "rhs": "com.example.app"
                }
              ]
            }
          ]
        },
        "feature_flag_filters": [
          {
            "exclusive": false,
            "name": "checkout_v2",
            "variant": "enabled"
          }
        ],
        "grouping_key": [
          "12710232306638153143"
        ],
        "platforms": [
          {
            "apple": {
              "apps": [
                {
                  "app_id": "com.example.app"
                }
              ]
            }
          }
        ],
        "time_range": {
          "relative_time_range": {
            "duration": "3600s",
            "offset": "3600s"
          }
        }
      }
    }
  }
}</code></pre></div>

# <a id="bitdrift.public.unary.admin.v1.UpsertViewRequest.Update"></a>UpsertViewRequest.Update

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

The values to update on an existing view.

<section class="proto-fields-table" markdown>
| Field | Type | Description |
|---|---|---|
| id | <span class="proto-type proto-type-primitive">string</span><br><em class="proto-field-annotation">between 1 and 100 chars</em> | The ID of the view to update. |
| name | <span class="proto-type proto-type-primitive">optional string</span><br><em class="proto-field-annotation">up to 255 chars</em> | An optional replacement name for the view. |
| description | <span class="proto-type proto-type-primitive">optional string</span><br><em class="proto-field-annotation">up to 1000 chars</em> | An optional replacement description for the view. |
| view_filters | <span class="proto-type proto-type-message">optional [<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">admin</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">ViewFilters</i>](bitdrift_public_unary_admin_v1_ViewFilters.md "bitdrift.public.unary.admin.v1.ViewFilters")</span> | Optional replacement filters for the view. |
| default_sort | <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">admin</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">ViewSortList</i>](bitdrift_public_unary_admin_v1_ViewSortList.md "bitdrift.public.unary.admin.v1.ViewSortList")</span> | Optional replacement default sort criteria. |
| icon | <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">admin</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">View</i><i class="proto-type-dot">.</i><i class="proto-type-part">ViewIcon</i>](bitdrift_public_unary_admin_v1_View.md "bitdrift.public.unary.admin.v1.View.ViewIcon")</span> | Optional replacement icon for the view. |

</section>
<p class="h4">Example</p>
<div class="proto-json-blob"><pre><code>{
  "default_sort": {
    "sort": [
      {
        "issue_group": {
          "direction": "DESCENDING",
          "key": "MOST_RECENT_OCCURRENCE"
        }
      }
    ]
  },
  "description": "Tracks unresolved crashes in the iOS app.",
  "icon": {
    "icon_name": "ph:bug"
  },
  "id": "view_123",
  "name": "Open iOS Crashes",
  "view_filters": {
    "issue_group_list_new": {
      "issue_group_query": {
        "assignee": [
          {
            "email": "user@example.com",
            "id": "usr_abc123",
            "name": "Jane Doe"
          }
        ],
        "issue_group_status": [
          "NEW"
        ]
      },
      "issue_query": {
        "advanced_filters": {
          "and_conditions": [
            {
              "or_conditions": [
                {
                  "lhs_typed": "LHS_TYPED_APP_ID",
                  "operator": "EQUAL",
                  "rhs": "com.example.app"
                }
              ]
            }
          ]
        },
        "feature_flag_filters": [
          {
            "exclusive": false,
            "name": "checkout_v2",
            "variant": "enabled"
          }
        ],
        "grouping_key": [
          "12710232306638153143"
        ],
        "platforms": [
          {
            "apple": {
              "apps": [
                {
                  "app_id": "com.example.app"
                }
              ]
            }
          }
        ],
        "time_range": {
          "relative_time_range": {
            "duration": "3600s",
            "offset": "3600s"
          }
        }
      }
    }
  }
}</code></pre></div>

