---
title: "CreateUISavedView"
method: POST
path: "/v1/namespaces/{tenant_meta.namespace}/ui-saved-views"
tags: ["UISavedViewService"]
---

# CreateUISavedView

`POST /v1/namespaces/{tenant_meta.namespace}/ui-saved-views`

## Request

- Base URL: `https://api.endorlabs.com`
- URL: `https://api.endorlabs.com/v1/namespaces/{tenant_meta.namespace}/ui-saved-views`
- Auth: none declared

Creates a saved view.

## Path parameters

- `tenant_meta.namespace` string, required

## Request body

- UISavedViewServiceCreateUISavedViewBody: UISavedView persists a view configuration (query values + display preferences) over an Endor resource.
  - `meta` V1Meta, required: Common fields for all Endor Labs resources.
    - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string: Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
    - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required: Resource name. Must be 63 characters or less.
    - `parent_kind` string: Parent object resource kind, for example, Project.
    - `parent_uuid` string: Parent object UUID.
    - `references` object: Map of objects referenced in a query API.
    - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string: Message version.
  - `propagate` boolean: Propagate controls the visibility of the saved view in child namespaces.
  - `spec` V1UISavedViewSpec, required: Spec captures the saved view's configuration.
    - `display` object: Free-form display configuration (column order, widths, sort, grouping, etc.). Shape is owned by the frontend and versioned via display_version.
    - `display_version` integer: Schema version of the display payload. Allows the frontend to migrate older display blobs when the shape evolves.
    - `owner_claims` string[]
    - `query` QueryQuerySpec, required
      - `kind` string, required: The parent object kind of the metric.
      - `list_parameters` V1ListParameters: Parameters for a list request.
        - `action` string: Action to be executed with a request. Not supported for all endpoints.
        - `ci_run_uuid` string: Only return objects from PR scans that match this context id.
        - `count` boolean: Return the number of objects matching the given list parameters. If count is set to true, the response is a CountResponse. Can be used together with filter and traverse.
        - `disable_pagination` boolean: If true, the results will not be paginated and only the first page will be returned. The order of the results is not guaranteed.
        - `filter` string: String of conditions to filter resources by. Filters may include any attribute along with the following operators: "==", "!=", ">", ">=", "<", "<=", "Contains", "In", "Matches", and "Exists". The logical operators "And" and "Or" are also supported. Expressions may be combined and grouped with parentheses. Examples: "spec.value == 5", "spec.value in ["a", "b", "c"]", "(meta.name == "xyz" and "spec.value in ["a","b"]) or (spec.value == "c")".
        - `group` ListParametersGroup: Contains the group parameters.
          - `aggregation_paths` string: Group the objects based on this field. If there are multiple fields then the objects are grouped based on the uniqueness of all fields. Supports composite paths. Supports arrays and maps.
          - `show_aggregation_uuids` boolean: Return the UUID of each object in each group as specified by aggregation_paths.
          - `unique_count_paths` string: List of fields for which we want the unique count. Supports arrays and maps.
          - `unique_value_paths` string: List of fields for which we want the unique values. Supports arrays and maps.
        - `group_by_time` ListParametersGroupByTime: Contains the group_by_time parameters.
          - `aggregation_operator` string
          - `aggregation_paths` string: Group the objects based on this time field, for example, meta.create_time.
          - `aggregation_value_field` string
          - `end_time` string, date-time: End of the time period to group objects. Defaults to the current time.
          - `group_size` integer: Size of the time interval to group the objects by, for example, to group objects by 2-week intervals, set interval to GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.
          - `interval` 'GROUP_BY_TIME_INTERVAL_UNSPECIFIED' | 'GROUP_BY_TIME_INTERVAL_YEAR' | 'GROUP_BY_TIME_INTERVAL_QUARTER' | 'GROUP_BY_TIME_INTERVAL_MONTH' | 'GROUP_BY_TIME_INTERVAL_WEEK' | 'GROUP_BY_TIME_INTERVAL_DAY' | 'GROUP_BY_TIME_INTERVAL_HOUR' | 'GROUP_BY_TIME_INTERVAL_MINUTE' | 'GROUP_BY_TIME_INTERVAL_SECOND'
          - `mode` string: The mode determines how the matching objects are counted in the produced time-series. Values allowed are: count (default) : is the number of items matching in every interval. sum: is the total number of items matching since the beginning of the aggregation time.
          - `show_aggregation_uuids` boolean: Return the UUIDs of the objects in each group.
          - `start_time` string, date-time: Beginning of the time period to group objects. Defaults to the beginning of time.
        - `mask` string: List of fields to return (all fields are returned by default).
        - `page_id` string: Page ID to retrieve.
        - `page_size` integer: Set the page size to limit the number of results returned. Default: 100. Max: 500.
        - `page_token` integer: Set the page token to start from. Use page tokens to page through list results or list specific pages.
        - `search_query` V1SearchQuery: SearchQuery is the top level message for search queries.
          - `filters` V1SearchClause[]: filters are used to filter the results.
            - `autocomplete` V1SearchClauseAutocomplete: Search clause for the autocomplete operator.
              - …
            - `compound` V1SearchQuery (recursive)
            - `equals` V1SearchClauseEquals: Search clause for equals operator. Field must be indexed as token.
              - …
            - `in` V1SearchClauseIn: Search clause for in operator. Field must be indexed as token.
              - …
            - `phrase` V1SearchClausePhrase: Search clause for phrase operator. Field must be indexed as text.
              - …
            - `query_string` V1SearchClauseQueryString: Search clause for query string operator. Field must be indexed as text.
              - …
            - `range` V1SearchClauseRange: Search clause for the range operator. Field must be indexed as number.
              - …
            - `regex` V1SearchClauseRegex: Regex is used to search for a string that matches a regular expression.
              - …
            - `text` V1SearchClauseText: Search clause for text operator. Field must be indexed as text.
              - …
            - `wildcard` V1SearchClauseWildcard: Search clause for the wildcard operator.
              - …
          - `must` V1SearchClause[]: must clauses must be satisfied.
            - `autocomplete` V1SearchClauseAutocomplete: Search clause for the autocomplete operator.
              - …
            - `compound` V1SearchQuery (recursive)
            - `equals` V1SearchClauseEquals: Search clause for equals operator. Field must be indexed as token.
              - …
            - `in` V1SearchClauseIn: Search clause for in operator. Field must be indexed as token.
              - …
            - `phrase` V1SearchClausePhrase: Search clause for phrase operator. Field must be indexed as text.
              - …
            - `query_string` V1SearchClauseQueryString: Search clause for query string operator. Field must be indexed as text.
              - …
            - `range` V1SearchClauseRange: Search clause for the range operator. Field must be indexed as number.
              - …
            - `regex` V1SearchClauseRegex: Regex is used to search for a string that matches a regular expression.
              - …
            - `text` V1SearchClauseText: Search clause for text operator. Field must be indexed as text.
              - …
            - `wildcard` V1SearchClauseWildcard: Search clause for the wildcard operator.
              - …
          - `must_not` V1SearchClause[]: must_not clauses must not be satisfied for a result to be returned.
            - `autocomplete` V1SearchClauseAutocomplete: Search clause for the autocomplete operator.
              - …
            - `compound` V1SearchQuery (recursive)
            - `equals` V1SearchClauseEquals: Search clause for equals operator. Field must be indexed as token.
              - …
            - `in` V1SearchClauseIn: Search clause for in operator. Field must be indexed as token.
              - …
            - `phrase` V1SearchClausePhrase: Search clause for phrase operator. Field must be indexed as text.
              - …
            - `query_string` V1SearchClauseQueryString: Search clause for query string operator. Field must be indexed as text.
              - …
            - `range` V1SearchClauseRange: Search clause for the range operator. Field must be indexed as number.
              - …
            - `regex` V1SearchClauseRegex: Regex is used to search for a string that matches a regular expression.
              - …
            - `text` V1SearchClauseText: Search clause for text operator. Field must be indexed as text.
              - …
            - `wildcard` V1SearchClauseWildcard: Search clause for the wildcard operator.
              - …
          - `should` V1SearchClause[]: should clauses should be satisfied for a result to be returned. Mainly used for partial matching.
            - `autocomplete` V1SearchClauseAutocomplete: Search clause for the autocomplete operator.
              - …
            - `compound` V1SearchQuery (recursive)
            - `equals` V1SearchClauseEquals: Search clause for equals operator. Field must be indexed as token.
              - …
            - `in` V1SearchClauseIn: Search clause for in operator. Field must be indexed as token.
              - …
            - `phrase` V1SearchClausePhrase: Search clause for phrase operator. Field must be indexed as text.
              - …
            - `query_string` V1SearchClauseQueryString: Search clause for query string operator. Field must be indexed as text.
              - …
            - `range` V1SearchClauseRange: Search clause for the range operator. Field must be indexed as number.
              - …
            - `regex` V1SearchClauseRegex: Regex is used to search for a string that matches a regular expression.
              - …
            - `text` V1SearchClauseText: Search clause for text operator. Field must be indexed as text.
              - …
            - `wildcard` V1SearchClauseWildcard: Search clause for the wildcard operator.
              - …
        - `sort` ListParametersSortEntry: Contains the sort parameters.
          - `order` 'SORT_ENTRY_ORDER_UNSPECIFIED' | 'SORT_ENTRY_ORDER_ASC' | 'SORT_ENTRY_ORDER_DESC'
          - `path` string: Field to sort objects by, for example, meta.name.
        - `traverse` boolean: Get data from any child namespaces as well.
      - `references` V1QueryReference[]
        - `connect_from` string: The parent field from which we are connecting. If emtpy, it is UUID.
        - `connect_operator` string: The operation that should be used to connect parent and child. If empty it is the equal operator. Only supporting scalar value operators at this time.
        - `connect_to` string: The child field to connect to. If empty, it is parent_uuid.
        - `query_spec` QueryQuerySpec (recursive)
      - `return_as` string: Determines the alias name for reference that should be returned. If not specified, the value of kind is used. This field can be used to query a same kind several times. For instance, you can use this field to list and do a count on a same kind.
      - `with` QueryJoinFilters[]: A list of join filters that identify the kind + filter of the other collections that should be joined. For example, if we are looking for projects that are also have repositories with specific attributes, we can use "with" : [{ "Kind" : "Repository", "Filter" : "filter for the repository", }] With is only available for the PackageVersion and Project resource kinds at this time.
        - `filter` string
        - `kind` string, required
    - `scope` 'SCOPE_UNSPECIFIED' | 'SCOPE_PERSONAL' | 'SCOPE_NAMESPACE', required: Who owns / can see the view. Determines lookup precedence and sharing. - SCOPE_UNSPECIFIED: No scope has been set. - SCOPE_PERSONAL: Visible only to the user who created the view. - SCOPE_NAMESPACE: Shared with everyone in the owning namespace.
    - `surface` string, required: Surface identifier that scopes the view to a specific UI area, e.g. "findings.table" or "packages.inventory". Lowercase, dot-separated segments of [a-z0-9_].
    - `view_type` 'VIEW_TYPE_UNSPECIFIED' | 'VIEW_TYPE_TABLE', required: The UI presentation flavor of the view. - VIEW_TYPE_UNSPECIFIED: No view type has been set. - VIEW_TYPE_TABLE: Tabular (columns + rows) presentation.
  - `tenant_meta` object, required: The Tenant Metadata restricts access to a specific tenant.
  - `uuid` string: The UUID of the saved view.

## Response `200`

A successful response.

- V1UISavedView: UISavedView persists a view configuration (query values + display preferences) over an Endor resource.
  - `meta` V1Meta, required: Common fields for all Endor Labs resources.
    - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string: Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
    - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required: Resource name. Must be 63 characters or less.
    - `parent_kind` string: Parent object resource kind, for example, Project.
    - `parent_uuid` string: Parent object UUID.
    - `references` object: Map of objects referenced in a query API.
    - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string: Message version.
  - `propagate` boolean: Propagate controls the visibility of the saved view in child namespaces.
  - `spec` V1UISavedViewSpec, required: Spec captures the saved view's configuration.
    - `display` object: Free-form display configuration (column order, widths, sort, grouping, etc.). Shape is owned by the frontend and versioned via display_version.
    - `display_version` integer: Schema version of the display payload. Allows the frontend to migrate older display blobs when the shape evolves.
    - `owner_claims` string[]
    - `query` QueryQuerySpec, required
      - `kind` string, required: The parent object kind of the metric.
      - `list_parameters` V1ListParameters: Parameters for a list request.
        - `action` string: Action to be executed with a request. Not supported for all endpoints.
        - `ci_run_uuid` string: Only return objects from PR scans that match this context id.
        - `count` boolean: Return the number of objects matching the given list parameters. If count is set to true, the response is a CountResponse. Can be used together with filter and traverse.
        - `disable_pagination` boolean: If true, the results will not be paginated and only the first page will be returned. The order of the results is not guaranteed.
        - `filter` string: String of conditions to filter resources by. Filters may include any attribute along with the following operators: "==", "!=", ">", ">=", "<", "<=", "Contains", "In", "Matches", and "Exists". The logical operators "And" and "Or" are also supported. Expressions may be combined and grouped with parentheses. Examples: "spec.value == 5", "spec.value in ["a", "b", "c"]", "(meta.name == "xyz" and "spec.value in ["a","b"]) or (spec.value == "c")".
        - `group` ListParametersGroup: Contains the group parameters.
          - `aggregation_paths` string: Group the objects based on this field. If there are multiple fields then the objects are grouped based on the uniqueness of all fields. Supports composite paths. Supports arrays and maps.
          - `show_aggregation_uuids` boolean: Return the UUID of each object in each group as specified by aggregation_paths.
          - `unique_count_paths` string: List of fields for which we want the unique count. Supports arrays and maps.
          - `unique_value_paths` string: List of fields for which we want the unique values. Supports arrays and maps.
        - `group_by_time` ListParametersGroupByTime: Contains the group_by_time parameters.
          - `aggregation_operator` string
          - `aggregation_paths` string: Group the objects based on this time field, for example, meta.create_time.
          - `aggregation_value_field` string
          - `end_time` string, date-time: End of the time period to group objects. Defaults to the current time.
          - `group_size` integer: Size of the time interval to group the objects by, for example, to group objects by 2-week intervals, set interval to GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.
          - `interval` 'GROUP_BY_TIME_INTERVAL_UNSPECIFIED' | 'GROUP_BY_TIME_INTERVAL_YEAR' | 'GROUP_BY_TIME_INTERVAL_QUARTER' | 'GROUP_BY_TIME_INTERVAL_MONTH' | 'GROUP_BY_TIME_INTERVAL_WEEK' | 'GROUP_BY_TIME_INTERVAL_DAY' | 'GROUP_BY_TIME_INTERVAL_HOUR' | 'GROUP_BY_TIME_INTERVAL_MINUTE' | 'GROUP_BY_TIME_INTERVAL_SECOND'
          - `mode` string: The mode determines how the matching objects are counted in the produced time-series. Values allowed are: count (default) : is the number of items matching in every interval. sum: is the total number of items matching since the beginning of the aggregation time.
          - `show_aggregation_uuids` boolean: Return the UUIDs of the objects in each group.
          - `start_time` string, date-time: Beginning of the time period to group objects. Defaults to the beginning of time.
        - `mask` string: List of fields to return (all fields are returned by default).
        - `page_id` string: Page ID to retrieve.
        - `page_size` integer: Set the page size to limit the number of results returned. Default: 100. Max: 500.
        - `page_token` integer: Set the page token to start from. Use page tokens to page through list results or list specific pages.
        - `search_query` V1SearchQuery: SearchQuery is the top level message for search queries.
          - `filters` V1SearchClause[]: filters are used to filter the results.
            - `autocomplete` V1SearchClauseAutocomplete: Search clause for the autocomplete operator.
              - …
            - `compound` V1SearchQuery (recursive)
            - `equals` V1SearchClauseEquals: Search clause for equals operator. Field must be indexed as token.
              - …
            - `in` V1SearchClauseIn: Search clause for in operator. Field must be indexed as token.
              - …
            - `phrase` V1SearchClausePhrase: Search clause for phrase operator. Field must be indexed as text.
              - …
            - `query_string` V1SearchClauseQueryString: Search clause for query string operator. Field must be indexed as text.
              - …
            - `range` V1SearchClauseRange: Search clause for the range operator. Field must be indexed as number.
              - …
            - `regex` V1SearchClauseRegex: Regex is used to search for a string that matches a regular expression.
              - …
            - `text` V1SearchClauseText: Search clause for text operator. Field must be indexed as text.
              - …
            - `wildcard` V1SearchClauseWildcard: Search clause for the wildcard operator.
              - …
          - `must` V1SearchClause[]: must clauses must be satisfied.
            - `autocomplete` V1SearchClauseAutocomplete: Search clause for the autocomplete operator.
              - …
            - `compound` V1SearchQuery (recursive)
            - `equals` V1SearchClauseEquals: Search clause for equals operator. Field must be indexed as token.
              - …
            - `in` V1SearchClauseIn: Search clause for in operator. Field must be indexed as token.
              - …
            - `phrase` V1SearchClausePhrase: Search clause for phrase operator. Field must be indexed as text.
              - …
            - `query_string` V1SearchClauseQueryString: Search clause for query string operator. Field must be indexed as text.
              - …
            - `range` V1SearchClauseRange: Search clause for the range operator. Field must be indexed as number.
              - …
            - `regex` V1SearchClauseRegex: Regex is used to search for a string that matches a regular expression.
              - …
            - `text` V1SearchClauseText: Search clause for text operator. Field must be indexed as text.
              - …
            - `wildcard` V1SearchClauseWildcard: Search clause for the wildcard operator.
              - …
          - `must_not` V1SearchClause[]: must_not clauses must not be satisfied for a result to be returned.
            - `autocomplete` V1SearchClauseAutocomplete: Search clause for the autocomplete operator.
              - …
            - `compound` V1SearchQuery (recursive)
            - `equals` V1SearchClauseEquals: Search clause for equals operator. Field must be indexed as token.
              - …
            - `in` V1SearchClauseIn: Search clause for in operator. Field must be indexed as token.
              - …
            - `phrase` V1SearchClausePhrase: Search clause for phrase operator. Field must be indexed as text.
              - …
            - `query_string` V1SearchClauseQueryString: Search clause for query string operator. Field must be indexed as text.
              - …
            - `range` V1SearchClauseRange: Search clause for the range operator. Field must be indexed as number.
              - …
            - `regex` V1SearchClauseRegex: Regex is used to search for a string that matches a regular expression.
              - …
            - `text` V1SearchClauseText: Search clause for text operator. Field must be indexed as text.
              - …
            - `wildcard` V1SearchClauseWildcard: Search clause for the wildcard operator.
              - …
          - `should` V1SearchClause[]: should clauses should be satisfied for a result to be returned. Mainly used for partial matching.
            - `autocomplete` V1SearchClauseAutocomplete: Search clause for the autocomplete operator.
              - …
            - `compound` V1SearchQuery (recursive)
            - `equals` V1SearchClauseEquals: Search clause for equals operator. Field must be indexed as token.
              - …
            - `in` V1SearchClauseIn: Search clause for in operator. Field must be indexed as token.
              - …
            - `phrase` V1SearchClausePhrase: Search clause for phrase operator. Field must be indexed as text.
              - …
            - `query_string` V1SearchClauseQueryString: Search clause for query string operator. Field must be indexed as text.
              - …
            - `range` V1SearchClauseRange: Search clause for the range operator. Field must be indexed as number.
              - …
            - `regex` V1SearchClauseRegex: Regex is used to search for a string that matches a regular expression.
              - …
            - `text` V1SearchClauseText: Search clause for text operator. Field must be indexed as text.
              - …
            - `wildcard` V1SearchClauseWildcard: Search clause for the wildcard operator.
              - …
        - `sort` ListParametersSortEntry: Contains the sort parameters.
          - `order` 'SORT_ENTRY_ORDER_UNSPECIFIED' | 'SORT_ENTRY_ORDER_ASC' | 'SORT_ENTRY_ORDER_DESC'
          - `path` string: Field to sort objects by, for example, meta.name.
        - `traverse` boolean: Get data from any child namespaces as well.
      - `references` V1QueryReference[]
        - `connect_from` string: The parent field from which we are connecting. If emtpy, it is UUID.
        - `connect_operator` string: The operation that should be used to connect parent and child. If empty it is the equal operator. Only supporting scalar value operators at this time.
        - `connect_to` string: The child field to connect to. If empty, it is parent_uuid.
        - `query_spec` QueryQuerySpec (recursive)
      - `return_as` string: Determines the alias name for reference that should be returned. If not specified, the value of kind is used. This field can be used to query a same kind several times. For instance, you can use this field to list and do a count on a same kind.
      - `with` QueryJoinFilters[]: A list of join filters that identify the kind + filter of the other collections that should be joined. For example, if we are looking for projects that are also have repositories with specific attributes, we can use "with" : [{ "Kind" : "Repository", "Filter" : "filter for the repository", }] With is only available for the PackageVersion and Project resource kinds at this time.
        - `filter` string
        - `kind` string, required
    - `scope` 'SCOPE_UNSPECIFIED' | 'SCOPE_PERSONAL' | 'SCOPE_NAMESPACE', required: Who owns / can see the view. Determines lookup precedence and sharing. - SCOPE_UNSPECIFIED: No scope has been set. - SCOPE_PERSONAL: Visible only to the user who created the view. - SCOPE_NAMESPACE: Shared with everyone in the owning namespace.
    - `surface` string, required: Surface identifier that scopes the view to a specific UI area, e.g. "findings.table" or "packages.inventory". Lowercase, dot-separated segments of [a-z0-9_].
    - `view_type` 'VIEW_TYPE_UNSPECIFIED' | 'VIEW_TYPE_TABLE', required: The UI presentation flavor of the view. - VIEW_TYPE_UNSPECIFIED: No view type has been set. - VIEW_TYPE_TABLE: Tabular (columns + rows) presentation.
  - `tenant_meta` V1TenantMeta, required: Tenant related data for the tenant containing the resource.
    - `namespace` string, required: Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
  - `uuid` string: The UUID of the saved view.

## Other responses

- `default`: An unexpected error response.

## Changes

- **2026-11-03** `4acd9fe15140`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/changes/v1/namespaces/:tenant_meta.namespace/ui-saved-views/post.md)

---

[API](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference.md) - [All operations](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/revisions/4acd9fe15140?raw)
