# Search the saving storage summary report for virtualization engines.

Endpoint: POST /reporting/storage-savings-report/search
Version: 3.30.0
Security: ApiKeyAuth

## Security:

  - `ApiKeyAuth` (unknown)
    apiKey in header Authorization

## Query parameters:

  - `limit` (integer)
    Maximum number of objects to return per query. The value must be between 1 and 1000. Default is 10000.

  - `cursor` (string)
    Cursor to fetch the next or previous page of results. The value of this property must be extracted from the 'prev_cursor' or 'next_cursor' property of a PaginatedResponseMetadata which is contained in the response of list and search API endpoints.

  - `sort` (string)
    The field to sort results by. A property name with a prepended '-' signifies descending order.

## Request body:

  - `application/json` (unknown)
    A request body containing a filter expression. This enables searching
for items matching arbitrarily complex conditions. The list of
attributes which can be used in filter expressions is available
in the x-filterable vendor extension.
# Filter Expression Overview
**Note: All keywords are case-insensitive**
## Comparison Operators
| Operator | Description | Example |
|  --- | --- | --- |
| CONTAINS | Substring or membership testing for string and list attributes respectively. | field3 CONTAINS 'foobar', field4 CONTAINS TRUE |
| IN | Tests if field is a member of a list literal. List can contain a maximum of 100 values | field2 IN ['Goku', 'Vegeta'] |
| GE | Tests if a field is greater than or equal to a literal value | field1 GE 1.2e-2 |
| GT | Tests if a field is greater than a literal value | field1 GT 1.2e-2 |
| LE | Tests if a field is less than or equal to a literal value | field1 LE 9000 |
| LT | Tests if a field is less than a literal value | field1 LT 9.02 |
| NE | Tests if a field is not equal to a literal value | field1 NE 42 |
| EQ | Tests if a field is equal to a literal value | field1 EQ 42 |

## Search Operator
The SEARCH operator filters for items which have any filterable
attribute that contains the input string as a substring, comparison
is done case-insensitively. This is not restricted to attributes with
string values. Specifically `SEARCH '12'` would match an item with an
attribute with an integer value of `123`.
## Logical Operators
Ordered by precedence.
| Operator | Description | Example |
|  --- | --- | --- |
| NOT | Logical NOT (Right associative) | NOT field1 LE 9000 |
| AND | Logical AND (Left Associative) | field1 GT 9000 AND field2 EQ 'Goku' |
| OR | Logical OR (Left Associative) | field1 GT 9000 OR field2 EQ 'Goku' |

## Grouping
Parenthesis `()` can be used to override operator precedence.
For example:
NOT (field1 LT 1234 AND field2 CONTAINS 'foo')
## Literal Values
| Literal | Description | Examples |
|  --- | --- | --- |
| Nil | Represents the absence of a value | nil, Nil, nIl, NIL |
| Boolean | true/false boolean | true, false, True, False, TRUE, FALSE |
| Number | Signed integer and floating point numbers. Also supports scientific notation. | 0, 1, -1, 1.2, 0.35, 1.2e-2, -1.2e+2 |
| String | Single or double quoted | "foo", "bar", "foo bar", 'foo', 'bar', 'foo bar' |
| Datetime | Formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) | 2018-04-27T18:39:26.397237+00:00 |
| List | Comma-separated literals wrapped in square brackets | [0], [0, 1], ['foo', "bar"] |

## Limitations
- A maximum of 8 unique identifiers may be used inside a filter expression.

## Request fields (application/json):

  - `filter_expression` (string)
    Example: string_field CONTAINS "over" AND numberic_field GT 9000 OR string_field2 EQ "Goku"

## Request examples:

  - `Nested Object Comparison` (unknown)
    An example of a nested Object comparison testing that at least one repository has a
version which is equal to 19.0.0.

  - `Relative comparison` (unknown)
    An example of a relative comparison testing that field1 has a
value which is less than 123.

  - `Absence of an attribute value` (unknown)
    An example of using nil to test for the absence of a value for field2.

  - `Existence of an attribute value` (unknown)
    An example of using nil to test for the existence of a value for field2.

  - `Use of the CONTAINS operator` (unknown)
    An example of using the 'CONTAINS' operator to check if
field2 contains the string 'foo'. If field2 is string valued
then this is checking if 'foo' is a substring of field2. If
field2 is a list of strings then this is checking if 'foo'
is a member of the list.

  - `Use of the IN operator` (unknown)
    An example of using the 'IN' operator to check if field1
is an element of a list literal.

  - `Use of the SEARCH operator` (unknown)
    An example of using the 'SEARCH' operator to retrieve all elements
for which 'foo' is a substring of a filterable attribute.

  - `Overriding operator precedence` (unknown)
    An example of parenthesis being used to group operators & override
operator precedence.

## Response 200:

  - `200` (unknown)
    Returns a list of saving storage summary data of virtualization engines.

## Response 200 fields (application/json):

  - `items` (array)

  - `items.dsource_id` (string)
    Id of the dSource.

  - `items.dependant_vdbs` (integer)
    The number of VDBs that are dependant on this dSource. This includes all VDB descendants that have this dSource as an ancestor.
    Example: 200

  - `items.engine_name` (string)
    The engine name.
    Example: My Favorite Engine

  - `items.unvirtualized_space` (integer)
    The disk space, in bytes, that it would take to store the dSource and its descendant VDBs without Delphix, counting each of their timeflows as separate copy of the parent source data.
    Example: 109242677

  - `items.current_timeflows_unvirtualized_space` (integer)
    The disk space, in bytes, that it would take to store the dSource and its descendant VDBs without Delphix, counting only their current (active) timeflows.
    Example: 109242677

  - `items.virtualized_space` (integer)
    The actual space used by the dSource and its dependant VDBs, in bytes.
    Example: 12345678

  - `items.name` (string)
    The name of the database on the target environment.
    Example: my-test-database

  - `items.estimated_savings` (integer)
    The disk space that has been saved by using Delphix virtualizion for all descendant timeflows, in bytes.
    Example: 109242677

  - `items.estimated_savings_perc` (number)
    The disk space that has been saved by using Delphix virtualizion for all descendant timeflows, in percentage.

  - `items.estimated_current_timeflows_savings` (integer)
    The disk space that has been saved by using Delphix virtualizion for only the current (active) timeflows, in bytes.
    Example: 109242677

  - `items.estimated_current_timeflows_savings_perc` (number)
    The disk space that has been saved by using Delphix virtualizion for only the current (active) timeflows, in percentage.

  - `items.is_replica` (boolean)
    Indicates if the dSource is a replica

  - `items.unvirtualized_space_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `items.unvirtualized_space_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `items.unvirtualized_space_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `items.current_timeflows_unvirtualized_space_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `items.current_timeflows_unvirtualized_space_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `items.current_timeflows_unvirtualized_space_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `items.virtualized_space_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `items.virtualized_space_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `items.virtualized_space_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `items.estimated_savings_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `items.estimated_savings_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `items.estimated_savings_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `items.estimated_current_timeflows_savings_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `items.estimated_current_timeflows_savings_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `items.estimated_current_timeflows_savings_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `response_metadata` (object)

  - `response_metadata.prev_cursor` (string)
    Pointer to the previous page of results. Use this value as a cursor query parameter in a subsequent request, along with limit, to navigate through the collection by virtual page.

  - `response_metadata.next_cursor` (string)
    Pointer to the next page of results. Use this value as a cursor query parameter in a subsequent request, along with limit, to navigate through the collection by virtual page.

  - `response_metadata.total` (integer)
    The total number of results. This value may not be provided.

  - `totals` (object)

  - `totals.vdb_count` (integer)
    The total VDB count

  - `totals.dsource_count` (integer)
    The total dSource count

  - `totals.virtualized_space` (integer)
    Total Virtualized Space. This is the sum of storage size from dSources and their dependant VDBs.

  - `totals.unvirtualized_space` (integer)
    Total disk space, in bytes, that it would take to store the filtered list of dSources and their descandant VDBs without Delphix, counting each of their timeflows as separate copy of the source data.

  - `totals.current_timeflows_unvirtualized_space` (integer)
    Total disk space, in bytes, that it would take to store the filtered list of dSources and their descandant VDBs without Delphix, counting only their current (active) timeflows.

  - `totals.estimated_savings` (integer)
    Total disk space that has been saved by using Delphix virtualization for all timeflows, in bytes.
    Example: 109242677

  - `totals.estimated_savings_perc` (number)
    Total disk space that has been saved by using Delphix virtualization for all timeflows, in percentage.

  - `totals.estimated_current_timeflows_savings` (integer)
    Total disk space that has been saved by using Delphix virtualization for only the current (active) timeflows, in bytes.

  - `totals.estimated_current_timeflows_savings_perc` (number)
    Total disk space that has been saved by using Delphix virtualization for only the current (active) timeflows, in percentage.

  - `totals.virtualized_space_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `totals.virtualized_space_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `totals.virtualized_space_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `totals.unvirtualized_space_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `totals.unvirtualized_space_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `totals.unvirtualized_space_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `totals.current_timeflows_unvirtualized_space_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `totals.current_timeflows_unvirtualized_space_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `totals.current_timeflows_unvirtualized_space_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `totals.estimated_savings_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `totals.estimated_savings_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `totals.estimated_savings_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

  - `totals.estimated_current_timeflows_savings_in_mb` (number)
    Value in MB (binary IEC base), rounded to one decimal place.

  - `totals.estimated_current_timeflows_savings_in_gb` (number)
    Value in GB (binary IEC base), rounded to one decimal place.

  - `totals.estimated_current_timeflows_savings_in_tb` (number)
    Value in TB (binary IEC base), rounded to one decimal place.

