> ## Documentation Index
> Fetch the complete documentation index at: https://www.propeldata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Inputs

> Input types in the Management API

<div />

## IdOrUniqueName

The ID or unique name input.

If both ID and unique name are provided, the ID will take precedence.

<ParamField path="id" type="String">
  The unique identifier of the object.
</ParamField>

<ParamField path="uniqueName" type="String">
  The unique name of the object.
</ParamField>

## CreateEnvironmentInput

The fields for creating an Environment.

<ParamField path="uniqueName" type="String" required>
  The Environment's unique name.
</ParamField>

<ParamField path="description" type="String">
  The Environment's description.
</ParamField>

## ModifyEnvironmentInput

The fields for modifying an Environment.

<ParamField path="id" type="ID" required />

<ParamField path="uniqueName" type="String">
  The Environment's unique name.
</ParamField>

<ParamField path="description" type="String">
  The Environment's description.
</ParamField>

## CreateApplicationInput

The fields for creating an Application.

<ParamField path="uniqueName" type="String">
  The Application's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Application's description.
</ParamField>

<ParamField path="propeller" type="Propeller">
  The Application's Propeller. If no Propeller is provided, Propel will set the Propeller to `P1_X_SMALL`.

  <Expandable title="Propeller">
    A Propeller determines your Application's query processing power. The larger the Propeller, the faster the queries and the higher the cost. Every Propel Application (and therefore every set of API credentials) has a Propeller that determines the speed and cost of queries.

    <ParamField path=" ">
      * `P1_X_SMALL`: Max records per second: 5,000,000 records per second
      * `P1_SMALL`: Max records per second: 25,000,000 records per second
      * `P1_MEDIUM`: Max records per second: 100,000,000 records per second
      * `P1_LARGE`: Max records per second: 250,000,000 records per second
      * `P1_X_LARGE`: Max records per second: 500,000,000 records per second
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="scopes" type="[ApplicationScope!]">
  The Application's API authorization scopes. If specified, at least one scope must be provided; otherwise, all scopes will be granted to the Application by default.

  <Expandable title="ApplicationScope">
    The API operations an Application is authorized to perform.

    <ParamField path=" ">
      * `ADMIN`: Grant read/write access to Data Sources, Data Pools, Metrics and Policies.
      * `APPLICATION_ADMIN`: Grant read/write access to Applications.
      * `DATA_POOL_QUERY`: Grant read access to query Data Pools.
      * `DATA_POOL_READ`: Grant read access to read Data Pools.
      * `DATA_POOL_STATS`: Grant read access to fetch column statistics from Data Pools.
      * `ENVIRONMENT_ADMIN`: Grant read/write access to Environments.
      * `METRIC_QUERY`: Grant read access to query Metrics.
      * `METRIC_STATS`: Grant read access to fetch Dimension statistics from Metrics.
      * `METRIC_READ`: Grant read access to Metrics.

      This does not allow querying Metrics. For that, see `METRIC_QUERY`.
    </ParamField>
  </Expandable>
</ParamField>

## ModifyApplicationInput

The fields for modifying an Application.

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Application to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Application's new unique name.
</ParamField>

<ParamField path="description" type="String">
  The Application's new description.
</ParamField>

<ParamField path="propeller" type="Propeller">
  The Application's new Propeller.

  <Expandable title="Propeller">
    A Propeller determines your Application's query processing power. The larger the Propeller, the faster the queries and the higher the cost. Every Propel Application (and therefore every set of API credentials) has a Propeller that determines the speed and cost of queries.

    <ParamField path=" ">
      * `P1_X_SMALL`: Max records per second: 5,000,000 records per second
      * `P1_SMALL`: Max records per second: 25,000,000 records per second
      * `P1_MEDIUM`: Max records per second: 100,000,000 records per second
      * `P1_LARGE`: Max records per second: 250,000,000 records per second
      * `P1_X_LARGE`: Max records per second: 500,000,000 records per second
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="scopes" type="[ApplicationScope!]">
  The Application's new API authorization scopes.

  <Expandable title="ApplicationScope">
    The API operations an Application is authorized to perform.

    <ParamField path=" ">
      * `ADMIN`: Grant read/write access to Data Sources, Data Pools, Metrics and Policies.
      * `APPLICATION_ADMIN`: Grant read/write access to Applications.
      * `DATA_POOL_QUERY`: Grant read access to query Data Pools.
      * `DATA_POOL_READ`: Grant read access to read Data Pools.
      * `DATA_POOL_STATS`: Grant read access to fetch column statistics from Data Pools.
      * `ENVIRONMENT_ADMIN`: Grant read/write access to Environments.
      * `METRIC_QUERY`: Grant read access to query Metrics.
      * `METRIC_STATS`: Grant read access to fetch Dimension statistics from Metrics.
      * `METRIC_READ`: Grant read access to Metrics.

      This does not allow querying Metrics. For that, see `METRIC_QUERY`.
    </ParamField>
  </Expandable>
</ParamField>

## CreateSnowflakeDataSourceInput

The fields for creating a Snowflake Data Source.

<ParamField path="uniqueName" type="String">
  The Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Data Source's description.
</ParamField>

<ParamField path="connectionSettings" type="SnowflakeConnectionSettingsInput" required>
  The Data Source's connection settings.

  <Expandable title="SnowflakeConnectionSettingsInput">
    The fields for creating a Snowflake Data Source's connection settings.

    <ParamField path="account" type="String" required>
      The Snowflake account. Only include the part before the "snowflakecomputing.com" part of your Snowflake URL (make sure you are in classic console, not Snowsight). For AWS-based accounts, this looks like "znXXXXX.us-east-2.aws". For Google Cloud-based accounts, this looks like "ffXXXXX.us-central1.gcp".
    </ParamField>

    <ParamField path="database" type="String" required>
      The Snowflake database name.
    </ParamField>

    <ParamField path="warehouse" type="String" required>
      The Snowflake warehouse name. It should be "PROPELLING" if you used the default name in the setup script.
    </ParamField>

    <ParamField path="schema" type="String" required>
      The Snowflake schema.
    </ParamField>

    <ParamField path="username" type="String" required>
      The Snowflake username. It should be "PROPEL" if you used the default name in the setup script.
    </ParamField>

    <ParamField path="password" type="String" required>
      The Snowflake password.
    </ParamField>

    <ParamField path="role" type="String" required>
      The Snowflake role. It should be "PROPELLER" if you used the default name in the setup script.
    </ParamField>
  </Expandable>
</ParamField>

## ModifySnowflakeDataSourceInput

The fields for modifying a Snowflake Data Source.

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Data Source's new unique name.
</ParamField>

<ParamField path="description" type="String">
  The Data Source's new description.
</ParamField>

<ParamField path="connectionSettings" type="PartialSnowflakeConnectionSettingsInput">
  The Data Source's new connection settings.

  <Expandable title="PartialSnowflakeConnectionSettingsInput">
    The fields for modifying a Snowflake Data Source's connection settings.

    <ParamField path="account" type="String">
      The Snowflake account. Only include the part before the "snowflakecomputing.com" part of your Snowflake URL (make sure you are in classic console, not Snowsight). For AWS-based accounts, this looks like "znXXXXX.us-east-2.aws". For Google Cloud-based accounts, this looks like "ffXXXXX.us-central1.gcp". If not provided this property will not be modified.
    </ParamField>

    <ParamField path="database" type="String">
      The Snowflake database name. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="warehouse" type="String">
      The Snowflake warehouse name. It should be "PROPELLING" if you used the default name in the setup script. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="schema" type="String">
      The Snowflake schema. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="username" type="String">
      The Snowflake username. It should be "PROPEL" if you used the default name in the setup script. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="password" type="String">
      The Snowflake password. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="role" type="String">
      The Snowflake role. It should be "PROPELLER" if you used the default name in the setup script. If not provided this property will not be modified.
    </ParamField>
  </Expandable>
</ParamField>

## SnowflakeConnectionSettingsInput

The fields for creating a Snowflake Data Source's connection settings.

<ParamField path="account" type="String" required>
  The Snowflake account. Only include the part before the "snowflakecomputing.com" part of your Snowflake URL (make sure you are in classic console, not Snowsight). For AWS-based accounts, this looks like "znXXXXX.us-east-2.aws". For Google Cloud-based accounts, this looks like "ffXXXXX.us-central1.gcp".
</ParamField>

<ParamField path="database" type="String" required>
  The Snowflake database name.
</ParamField>

<ParamField path="warehouse" type="String" required>
  The Snowflake warehouse name. It should be "PROPELLING" if you used the default name in the setup script.
</ParamField>

<ParamField path="schema" type="String" required>
  The Snowflake schema.
</ParamField>

<ParamField path="username" type="String" required>
  The Snowflake username. It should be "PROPEL" if you used the default name in the setup script.
</ParamField>

<ParamField path="password" type="String" required>
  The Snowflake password.
</ParamField>

<ParamField path="role" type="String" required>
  The Snowflake role. It should be "PROPELLER" if you used the default name in the setup script.
</ParamField>

## PartialSnowflakeConnectionSettingsInput

The fields for modifying a Snowflake Data Source's connection settings.

<ParamField path="account" type="String">
  The Snowflake account. Only include the part before the "snowflakecomputing.com" part of your Snowflake URL (make sure you are in classic console, not Snowsight). For AWS-based accounts, this looks like "znXXXXX.us-east-2.aws". For Google Cloud-based accounts, this looks like "ffXXXXX.us-central1.gcp". If not provided this property will not be modified.
</ParamField>

<ParamField path="database" type="String">
  The Snowflake database name. If not provided this property will not be modified.
</ParamField>

<ParamField path="warehouse" type="String">
  The Snowflake warehouse name. It should be "PROPELLING" if you used the default name in the setup script. If not provided this property will not be modified.
</ParamField>

<ParamField path="schema" type="String">
  The Snowflake schema. If not provided this property will not be modified.
</ParamField>

<ParamField path="username" type="String">
  The Snowflake username. It should be "PROPEL" if you used the default name in the setup script. If not provided this property will not be modified.
</ParamField>

<ParamField path="password" type="String">
  The Snowflake password. If not provided this property will not be modified.
</ParamField>

<ParamField path="role" type="String">
  The Snowflake role. It should be "PROPELLER" if you used the default name in the setup script. If not provided this property will not be modified.
</ParamField>

## HttpBasicAuthInput

The fields for specifying an HTTP Data Source's Basic authentication settings.

<ParamField path="username" type="String" required>
  The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
</ParamField>

<ParamField path="password" type="String" required>
  The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
</ParamField>

## HttpDataSourceTableInput

The fields for specifying an HTTP Data Source's table.

<ParamField path="name" type="String" required>
  The name of the table
</ParamField>

<ParamField path="columns" type="[HttpDataSourceColumnInput!]" required>
  All the columns present in the table

  <Expandable title="HttpDataSourceColumnInput">
    The fields for specifying a column in an HTTP Data Source's table.

    <ParamField path="name" type="String" required>
      The column name. It has to be unique within a table.
    </ParamField>

    <ParamField path="type" type="ColumnType" required>
      The column type.

      <Expandable title="ColumnType">
        The Propel data types.

        <ParamField path=" ">
          * `BOOLEAN`: True or false.
          * `STRING`: A variable-length string.
          * `FLOAT`: A 32-bit signed double-precision floating point number.
          * `DOUBLE`: A 64-bit signed double-precision floating point number.
          * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
          * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
          * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
          * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
          * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
          * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
          * `JSON`: A JavaScript Object Notation (JSON) document.
          * `CLICKHOUSE`: A ClickHouse-specific type.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="clickHouseType" type="String">
      The ClickHouse type to use when `type` is set to `CLICKHOUSE`.
    </ParamField>

    <ParamField path="nullable" type="Boolean" required>
      Whether the column's type is nullable or not.
    </ParamField>
  </Expandable>
</ParamField>

## HttpDataSourceColumnInput

The fields for specifying a column in an HTTP Data Source's table.

<ParamField path="name" type="String" required>
  The column name. It has to be unique within a table.
</ParamField>

<ParamField path="type" type="ColumnType" required>
  The column type.

  <Expandable title="ColumnType">
    The Propel data types.

    <ParamField path=" ">
      * `BOOLEAN`: True or false.
      * `STRING`: A variable-length string.
      * `FLOAT`: A 32-bit signed double-precision floating point number.
      * `DOUBLE`: A 64-bit signed double-precision floating point number.
      * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
      * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
      * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
      * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
      * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
      * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
      * `JSON`: A JavaScript Object Notation (JSON) document.
      * `CLICKHOUSE`: A ClickHouse-specific type.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="clickHouseType" type="String">
  The ClickHouse type to use when `type` is set to `CLICKHOUSE`.
</ParamField>

<ParamField path="nullable" type="Boolean" required>
  Whether the column's type is nullable or not.
</ParamField>

## S3DataSourceTableInput

The fields for specifying an Amazon S3 Data Source's table.

<ParamField path="name" type="String" required>
  The name of the table
</ParamField>

<ParamField path="path" type="String">
  The path to the table's files in Amazon S3.
</ParamField>

<ParamField path="columns" type="[S3DataSourceColumnInput!]" required>
  All the columns present in the table

  <Expandable title="S3DataSourceColumnInput">
    The fields for specifying a column in an Amazon S3 Data Source's table.

    <ParamField path="name" type="String" required>
      The column name. It has to be unique within a table.
    </ParamField>

    <ParamField path="type" type="ColumnType" required>
      The column type.

      <Expandable title="ColumnType">
        The Propel data types.

        <ParamField path=" ">
          * `BOOLEAN`: True or false.
          * `STRING`: A variable-length string.
          * `FLOAT`: A 32-bit signed double-precision floating point number.
          * `DOUBLE`: A 64-bit signed double-precision floating point number.
          * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
          * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
          * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
          * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
          * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
          * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
          * `JSON`: A JavaScript Object Notation (JSON) document.
          * `CLICKHOUSE`: A ClickHouse-specific type.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="nullable" type="Boolean" required>
      Whether the column's type is nullable or not.
    </ParamField>
  </Expandable>
</ParamField>

## S3DataSourceColumnInput

The fields for specifying a column in an Amazon S3 Data Source's table.

<ParamField path="name" type="String" required>
  The column name. It has to be unique within a table.
</ParamField>

<ParamField path="type" type="ColumnType" required>
  The column type.

  <Expandable title="ColumnType">
    The Propel data types.

    <ParamField path=" ">
      * `BOOLEAN`: True or false.
      * `STRING`: A variable-length string.
      * `FLOAT`: A 32-bit signed double-precision floating point number.
      * `DOUBLE`: A 64-bit signed double-precision floating point number.
      * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
      * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
      * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
      * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
      * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
      * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
      * `JSON`: A JavaScript Object Notation (JSON) document.
      * `CLICKHOUSE`: A ClickHouse-specific type.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="nullable" type="Boolean" required>
  Whether the column's type is nullable or not.
</ParamField>

## AmazonDataFirehoseDataSourceColumnInput

The fields for specifying a column in an Amazon Data Firehose Data Source's table.

<ParamField path="name" type="String" required>
  The column name. It has to be unique within a table.
</ParamField>

<ParamField path="jsonProperty" type="String" required>
  The JSON property that the column will be derived from. For example, if you send a JSON event like this:

  ```json theme={"system"}
  { "greeting": { "message": "hello, world" } }
  ```

  Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
</ParamField>

<ParamField path="type" type="ColumnType" required>
  The column type.

  <Expandable title="ColumnType">
    The Propel data types.

    <ParamField path=" ">
      * `BOOLEAN`: True or false.
      * `STRING`: A variable-length string.
      * `FLOAT`: A 32-bit signed double-precision floating point number.
      * `DOUBLE`: A 64-bit signed double-precision floating point number.
      * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
      * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
      * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
      * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
      * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
      * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
      * `JSON`: A JavaScript Object Notation (JSON) document.
      * `CLICKHOUSE`: A ClickHouse-specific type.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="nullable" type="Boolean" required>
  Whether the column's type is nullable or not.
</ParamField>

## AmazonDynamoDBDataSourceColumnInput

The fields for specifying a column in an Amazon DynamODB Data Source's table.

<ParamField path="name" type="String" required>
  The column name. It has to be unique within a table.
</ParamField>

<ParamField path="jsonProperty" type="String" required>
  The JSON property that the column will be derived from. For example, if you send a JSON event like this:

  ```json theme={"system"}
  { "greeting": { "message": "hello, world" } }
  ```

  Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
</ParamField>

<ParamField path="type" type="ColumnType" required>
  The column type.

  <Expandable title="ColumnType">
    The Propel data types.

    <ParamField path=" ">
      * `BOOLEAN`: True or false.
      * `STRING`: A variable-length string.
      * `FLOAT`: A 32-bit signed double-precision floating point number.
      * `DOUBLE`: A 64-bit signed double-precision floating point number.
      * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
      * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
      * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
      * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
      * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
      * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
      * `JSON`: A JavaScript Object Notation (JSON) document.
      * `CLICKHOUSE`: A ClickHouse-specific type.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="nullable" type="Boolean" required>
  Whether the column's type is nullable or not.
</ParamField>

## TwilioSegmentDataSourceColumnInput

The fields for specifying a column in a Twilio Segment Data Source's table.

<ParamField path="name" type="String" required>
  The column name. It has to be unique within a table.
</ParamField>

<ParamField path="jsonProperty" type="String" required>
  The JSON property that the column will be derived from. For example, if you POST a JSON event like this:

  ```json theme={"system"}
  { "greeting": { "message": "hello, world" } }
  ```

  Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
</ParamField>

<ParamField path="type" type="ColumnType" required>
  The column type.

  <Expandable title="ColumnType">
    The Propel data types.

    <ParamField path=" ">
      * `BOOLEAN`: True or false.
      * `STRING`: A variable-length string.
      * `FLOAT`: A 32-bit signed double-precision floating point number.
      * `DOUBLE`: A 64-bit signed double-precision floating point number.
      * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
      * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
      * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
      * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
      * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
      * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
      * `JSON`: A JavaScript Object Notation (JSON) document.
      * `CLICKHOUSE`: A ClickHouse-specific type.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="nullable" type="Boolean" required>
  Whether the column's type is nullable or not.
</ParamField>

## WebhookDataSourceColumnInput

The fields for specifying a column in a Webhook Data Source's table.

<ParamField path="name" type="String" required>
  The column name. It has to be unique within a table.
</ParamField>

<ParamField path="jsonProperty" type="String" required>
  The JSON property that the column will be derived from. For example, if you POST a JSON event like this:

  ```json theme={"system"}
  { "greeting": { "message": "hello, world" } }
  ```

  Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
</ParamField>

<ParamField path="type" type="ColumnType" required>
  The column type.

  <Expandable title="ColumnType">
    The Propel data types.

    <ParamField path=" ">
      * `BOOLEAN`: True or false.
      * `STRING`: A variable-length string.
      * `FLOAT`: A 32-bit signed double-precision floating point number.
      * `DOUBLE`: A 64-bit signed double-precision floating point number.
      * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
      * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
      * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
      * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
      * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
      * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
      * `JSON`: A JavaScript Object Notation (JSON) document.
      * `CLICKHOUSE`: A ClickHouse-specific type.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="nullable" type="Boolean" required>
  Whether the column's type is nullable or not.
</ParamField>

## TableSettingsInput

A Data Pool's table settings.

These describe how the Data Pool's table is created in ClickHouse.

<ParamField path="engine" type="TableEngineInput">
  The ClickHouse table engine for the Data Pool's table.

  This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

  <Expandable title="TableEngineInput">
    A Data Pool's table engine.

    <ParamField path="mergeTree" type="MergeTreeTableEngineInput">
      Field for specifying the MergeTree table engine.

      <Expandable title="MergeTreeTableEngineInput">
        Parameters for the MergeTree table engine.

        <ParamField path="type" type="TableEngineType">
          The type is always `MERGE_TREE`.

          See <a href="/docs/management-api/enums#tableenginetype">TableEngineType</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="replacingMergeTree" type="ReplacingMergeTreeTableEngineInput">
      Field for specifying the ReplacingMergeTree table engine.

      <Expandable title="ReplacingMergeTreeTableEngineInput">
        Parameters for the ReplacingMergeTree table engine.

        <ParamField path="type" type="TableEngineType">
          The type is always `REPLACING_MERGE_TREE`.

          See <a href="/docs/management-api/enums#tableenginetype">TableEngineType</a>
        </ParamField>

        <ParamField path="ver" type="String">
          The `ver` parameter to the ReplacingMergeTree engine.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="summingMergeTree" type="SummingMergeTreeTableEngineInput">
      Field for specifying the SummingMergeTree table engine.

      <Expandable title="SummingMergeTreeTableEngineInput">
        Parameters for the SummingMergeTree table engine.

        <ParamField path="type" type="TableEngineType">
          The type is always `SUMMING_MERGE_TREE`.

          See <a href="/docs/management-api/enums#tableenginetype">TableEngineType</a>
        </ParamField>

        <ParamField path="columns" type="[String!]">
          The columns argument for the SummingMergeTree table engine
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="aggregatingMergeTree" type="AggregatingMergeTreeTableEngineInput">
      Field for specifying the AggregatingMergeTree table engine.

      <Expandable title="AggregatingMergeTreeTableEngineInput">
        Parameters for the AggregatingMergeTree table engine.

        <ParamField path="type" type="TableEngineType">
          The type is always `AGGREGATING_MERGE_TREE`.

          See <a href="/docs/management-api/enums#tableenginetype">TableEngineType</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="postgreSql" type="PostgreSqlTableEngineInput">
      Field for specifying the PostgreSQL table engine.

      <Expandable title="PostgreSqlTableEngineInput">
        Parameters for the PostgreSQL table engine.

        <ParamField path="type" type="TableEngineType">
          The type is always `POSTGRESQL`.

          See <a href="/docs/management-api/enums#tableenginetype">TableEngineType</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="partitionBy" type="[String!]">
  The PARTITION BY clause for the Data Pool's table.

  This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
</ParamField>

<ParamField path="primaryKey" type="[String!]">
  The PRIMARY KEY clause for the Data Pool's table.

  This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
</ParamField>

<ParamField path="orderBy" type="[String!]">
  The ORDER BY clause for the Data Pool's table.

  This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
</ParamField>

<ParamField path="ttl" type="String">
  The TTL clause for the Data Pool's table.
</ParamField>

## TableEngineInput

A Data Pool's table engine.

<ParamField path="mergeTree" type="MergeTreeTableEngineInput">
  Field for specifying the MergeTree table engine.

  <Expandable title="MergeTreeTableEngineInput">
    Parameters for the MergeTree table engine.

    <ParamField path="type" type="TableEngineType">
      The type is always `MERGE_TREE`.

      <Expandable title="TableEngineType">
        ClickHouse table engine types.

        <ParamField path=" ">
          * `MERGE_TREE`: The MergeTree table engine.
          * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
          * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
          * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
          * `POSTGRESQL`: The PostgreSQL table engine.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="replacingMergeTree" type="ReplacingMergeTreeTableEngineInput">
  Field for specifying the ReplacingMergeTree table engine.

  <Expandable title="ReplacingMergeTreeTableEngineInput">
    Parameters for the ReplacingMergeTree table engine.

    <ParamField path="type" type="TableEngineType">
      The type is always `REPLACING_MERGE_TREE`.

      <Expandable title="TableEngineType">
        ClickHouse table engine types.

        <ParamField path=" ">
          * `MERGE_TREE`: The MergeTree table engine.
          * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
          * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
          * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
          * `POSTGRESQL`: The PostgreSQL table engine.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="ver" type="String">
      The `ver` parameter to the ReplacingMergeTree engine.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="summingMergeTree" type="SummingMergeTreeTableEngineInput">
  Field for specifying the SummingMergeTree table engine.

  <Expandable title="SummingMergeTreeTableEngineInput">
    Parameters for the SummingMergeTree table engine.

    <ParamField path="type" type="TableEngineType">
      The type is always `SUMMING_MERGE_TREE`.

      <Expandable title="TableEngineType">
        ClickHouse table engine types.

        <ParamField path=" ">
          * `MERGE_TREE`: The MergeTree table engine.
          * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
          * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
          * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
          * `POSTGRESQL`: The PostgreSQL table engine.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="columns" type="[String!]">
      The columns argument for the SummingMergeTree table engine
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="aggregatingMergeTree" type="AggregatingMergeTreeTableEngineInput">
  Field for specifying the AggregatingMergeTree table engine.

  <Expandable title="AggregatingMergeTreeTableEngineInput">
    Parameters for the AggregatingMergeTree table engine.

    <ParamField path="type" type="TableEngineType">
      The type is always `AGGREGATING_MERGE_TREE`.

      <Expandable title="TableEngineType">
        ClickHouse table engine types.

        <ParamField path=" ">
          * `MERGE_TREE`: The MergeTree table engine.
          * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
          * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
          * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
          * `POSTGRESQL`: The PostgreSQL table engine.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="postgreSql" type="PostgreSqlTableEngineInput">
  Field for specifying the PostgreSQL table engine.

  <Expandable title="PostgreSqlTableEngineInput">
    Parameters for the PostgreSQL table engine.

    <ParamField path="type" type="TableEngineType">
      The type is always `POSTGRESQL`.

      <Expandable title="TableEngineType">
        ClickHouse table engine types.

        <ParamField path=" ">
          * `MERGE_TREE`: The MergeTree table engine.
          * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
          * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
          * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
          * `POSTGRESQL`: The PostgreSQL table engine.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## MergeTreeTableEngineInput

Parameters for the MergeTree table engine.

<ParamField path="type" type="TableEngineType">
  The type is always `MERGE_TREE`.

  <Expandable title="TableEngineType">
    ClickHouse table engine types.

    <ParamField path=" ">
      * `MERGE_TREE`: The MergeTree table engine.
      * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
      * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
      * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
      * `POSTGRESQL`: The PostgreSQL table engine.
    </ParamField>
  </Expandable>
</ParamField>

## ReplacingMergeTreeTableEngineInput

Parameters for the ReplacingMergeTree table engine.

<ParamField path="type" type="TableEngineType">
  The type is always `REPLACING_MERGE_TREE`.

  <Expandable title="TableEngineType">
    ClickHouse table engine types.

    <ParamField path=" ">
      * `MERGE_TREE`: The MergeTree table engine.
      * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
      * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
      * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
      * `POSTGRESQL`: The PostgreSQL table engine.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="ver" type="String">
  The `ver` parameter to the ReplacingMergeTree engine.
</ParamField>

## SummingMergeTreeTableEngineInput

Parameters for the SummingMergeTree table engine.

<ParamField path="type" type="TableEngineType">
  The type is always `SUMMING_MERGE_TREE`.

  <Expandable title="TableEngineType">
    ClickHouse table engine types.

    <ParamField path=" ">
      * `MERGE_TREE`: The MergeTree table engine.
      * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
      * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
      * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
      * `POSTGRESQL`: The PostgreSQL table engine.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="columns" type="[String!]">
  The columns argument for the SummingMergeTree table engine
</ParamField>

## AggregatingMergeTreeTableEngineInput

Parameters for the AggregatingMergeTree table engine.

<ParamField path="type" type="TableEngineType">
  The type is always `AGGREGATING_MERGE_TREE`.

  <Expandable title="TableEngineType">
    ClickHouse table engine types.

    <ParamField path=" ">
      * `MERGE_TREE`: The MergeTree table engine.
      * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
      * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
      * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
      * `POSTGRESQL`: The PostgreSQL table engine.
    </ParamField>
  </Expandable>
</ParamField>

## PostgreSqlTableEngineInput

Parameters for the PostgreSQL table engine.

<ParamField path="type" type="TableEngineType">
  The type is always `POSTGRESQL`.

  <Expandable title="TableEngineType">
    ClickHouse table engine types.

    <ParamField path=" ">
      * `MERGE_TREE`: The MergeTree table engine.
      * `REPLACING_MERGE_TREE`: The ReplacingMergeTree table engine.
      * `SUMMING_MERGE_TREE`: The SummingMergeTree table engine.
      * `AGGREGATING_MERGE_TREE`: The AggregatingMergeTree table engine.
      * `POSTGRESQL`: The PostgreSQL table engine.
    </ParamField>
  </Expandable>
</ParamField>

## BackfillOptionsInput

<ParamField path="backfill" type="Boolean">
  Whether historical data should be backfilled or not
</ParamField>

<ParamField path="order" type="PartitionOrder">
  Defines the order in which historical data is backfilled. Defaults to `OLDEST_FIRST` if not specified.

  <Expandable title="PartitionOrder">
    The available options for partition processing order.

    <ParamField path=" ">
      * `OLDEST_FIRST`: Partitions are processed in ascending order, starting with the oldest.
      * `NEWEST_FIRST`: Partitions are processed in descending order, starting with the newest.
    </ParamField>
  </Expandable>
</ParamField>

## CreateMaterializedViewInput

The fields for creating a Materialized View.

<ParamField path="uniqueName" type="String">
  The Materialized View's unique name. If not specified, Propel will set the ID as the unique name.
</ParamField>

<ParamField path="description" type="String">
  The Materialized View's description.
</ParamField>

<ParamField path="sql" type="String" required>
  The SQL that the Materialized View will execute.
</ParamField>

<ParamField path="destination" type="CreateMaterializedViewDestinationInput" required>
  By default, a destination Data Pool with default settings will be created for the Materialized View;
  however, you can customize the destination Data Pool (or point to an existing Data Pool), by setting
  this field. Use this to target an existing Data Pool or the engine settings of a new Data Pool.

  <Expandable title="CreateMaterializedViewDestinationInput">
    The fields for targeting an existing Data Pool or a new Data Pool.

    <ParamField path="existingDataPool" type="DataPoolInput">
      If specified, the Materialized View will target an existing Data Pool.
      Ensure the Data Pool's schema is compatible with your Materialized View's SQL statement.

      <Expandable title="DataPoolInput">
        <ParamField path="id" type="ID">
          The ID of the Data Pool.
        </ParamField>

        <ParamField path="name" type="String">
          The name of the Data Pool.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="newDataPool" type="CreateMaterializedViewDestinationNewDataPoolInput">
      If specified, the Materialized View will create and target a new Data Pool.
      You can further customize the new Data Pool's engine settings.

      <Expandable title="CreateMaterializedViewDestinationNewDataPoolInput">
        The fields for customizing a new Data Pool that a Materialized View will target.

        <ParamField path="uniqueName" type="String">
          The Data Pool's unique name.
        </ParamField>

        <ParamField path="description" type="String">
          The Data Pool's description.
        </ParamField>

        <ParamField path="timestamp" type="TimestampInput">
          Optionally specify the Data Pool's primary timestamp. This will influence the Data Pool's engine settings.

          See <a href="/docs/management-api/inputs#timestampinput">TimestampInput</a>
        </ParamField>

        <ParamField path="accessControlEnabled" type="Boolean">
          Enables or disables access control for the Data Pool.

          If the Data Pool has access control enabled, Applications must be assigned Data Pool Access
          Policies in order to query the Data Pool and its Metrics.
        </ParamField>

        <ParamField path="tableSettings" type="TableSettingsInput">
          Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
          default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if any. You can override these
          defaults in order to specify a custom table engine, custom ORDER BY, etc.

          See <a href="/docs/management-api/inputs#tablesettingsinput">TableSettingsInput</a>
        </ParamField>

        <Expandable title="Deprecated Fields">
          <ParamField path="uniqueId" type="UniqueIdInput" deprecated>
            Optionally specify the Data Pool's unique ID. This will influence the Data Pool's engine settings.

            <span style={{ fontStyle: 'italic' }}>deprecated: Will be removed; use table settings to define the primary key.</span>

            See <a href="/docs/management-api/inputs#uniqueidinput">UniqueIdInput</a>
          </ParamField>
        </Expandable>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="backfillOptions" type="BackfillOptionsInput">
  By default, a Materialized View only applies to records added after its creation. This option allows
  to backfill all the data that was present before the Materialized View creation.

  <Expandable title="BackfillOptionsInput">
    <ParamField path="backfill" type="Boolean">
      Whether historical data should be backfilled or not
    </ParamField>

    <ParamField path="order" type="PartitionOrder">
      Defines the order in which historical data is backfilled. Defaults to `OLDEST_FIRST` if not specified.

      <Expandable title="PartitionOrder">
        The available options for partition processing order.

        <ParamField path=" ">
          * `OLDEST_FIRST`: Partitions are processed in ascending order, starting with the oldest.
          * `NEWEST_FIRST`: Partitions are processed in descending order, starting with the newest.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## ModifyMaterializedViewInput

The fields for modifying a Materialized View.

<ParamField path="id" type="ID" required>
  The ID of the Materialized View to modify.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Materialized View's new unique name.
</ParamField>

<ParamField path="description" type="String">
  The Materialized View's new description.
</ParamField>

## CreateMaterializedViewDestinationInput

The fields for targeting an existing Data Pool or a new Data Pool.

<ParamField path="existingDataPool" type="DataPoolInput">
  If specified, the Materialized View will target an existing Data Pool.
  Ensure the Data Pool's schema is compatible with your Materialized View's SQL statement.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="newDataPool" type="CreateMaterializedViewDestinationNewDataPoolInput">
  If specified, the Materialized View will create and target a new Data Pool.
  You can further customize the new Data Pool's engine settings.

  <Expandable title="CreateMaterializedViewDestinationNewDataPoolInput">
    The fields for customizing a new Data Pool that a Materialized View will target.

    <ParamField path="uniqueName" type="String">
      The Data Pool's unique name.
    </ParamField>

    <ParamField path="description" type="String">
      The Data Pool's description.
    </ParamField>

    <ParamField path="timestamp" type="TimestampInput">
      Optionally specify the Data Pool's primary timestamp. This will influence the Data Pool's engine settings.

      <Expandable title="TimestampInput">
        The fields to specify the Data Pool's primary timestamp column. Propel uses the primary timestamp to order and partition your data in Data Pools. It will serve as the time dimension for your Metrics.

        <ParamField path="columnName" type="String" required>
          The name of the column that represents the primary timestamp.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="accessControlEnabled" type="Boolean">
      Enables or disables access control for the Data Pool.

      If the Data Pool has access control enabled, Applications must be assigned Data Pool Access
      Policies in order to query the Data Pool and its Metrics.
    </ParamField>

    <ParamField path="tableSettings" type="TableSettingsInput">
      Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
      default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if any. You can override these
      defaults in order to specify a custom table engine, custom ORDER BY, etc.

      <Expandable title="TableSettingsInput">
        A Data Pool's table settings.

        These describe how the Data Pool's table is created in ClickHouse.

        <ParamField path="engine" type="TableEngineInput">
          The ClickHouse table engine for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

          See <a href="/docs/management-api/inputs#tableengineinput">TableEngineInput</a>
        </ParamField>

        <ParamField path="partitionBy" type="[String!]">
          The PARTITION BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="primaryKey" type="[String!]">
          The PRIMARY KEY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="orderBy" type="[String!]">
          The ORDER BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="ttl" type="String">
          The TTL clause for the Data Pool's table.
        </ParamField>
      </Expandable>
    </ParamField>

    <Expandable title="Deprecated Fields">
      <ParamField path="uniqueId" type="UniqueIdInput" deprecated>
        Optionally specify the Data Pool's unique ID. This will influence the Data Pool's engine settings.

        <span style={{ fontStyle: 'italic' }}>deprecated: Will be removed; use table settings to define the primary key.</span>

        <Expandable title="UniqueIdInput">
          The fields to specify the Data Pool's unique ID column. Propel uses the primary timestamp and a unique ID to compose a primary key for determining whether records should be inserted, deleted, or updated within the Data Pool.

          <ParamField path="columnName" type="String" required>
            The name of the column that represents the unique ID.
          </ParamField>
        </Expandable>
      </ParamField>
    </Expandable>
  </Expandable>
</ParamField>

## CreateMaterializedViewDestinationNewDataPoolInput

The fields for customizing a new Data Pool that a Materialized View will target.

<ParamField path="uniqueName" type="String">
  The Data Pool's unique name.
</ParamField>

<ParamField path="description" type="String">
  The Data Pool's description.
</ParamField>

<ParamField path="timestamp" type="TimestampInput">
  Optionally specify the Data Pool's primary timestamp. This will influence the Data Pool's engine settings.

  <Expandable title="TimestampInput">
    The fields to specify the Data Pool's primary timestamp column. Propel uses the primary timestamp to order and partition your data in Data Pools. It will serve as the time dimension for your Metrics.

    <ParamField path="columnName" type="String" required>
      The name of the column that represents the primary timestamp.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="accessControlEnabled" type="Boolean">
  Enables or disables access control for the Data Pool.

  If the Data Pool has access control enabled, Applications must be assigned Data Pool Access
  Policies in order to query the Data Pool and its Metrics.
</ParamField>

<ParamField path="tableSettings" type="TableSettingsInput">
  Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
  default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if any. You can override these
  defaults in order to specify a custom table engine, custom ORDER BY, etc.

  <Expandable title="TableSettingsInput">
    A Data Pool's table settings.

    These describe how the Data Pool's table is created in ClickHouse.

    <ParamField path="engine" type="TableEngineInput">
      The ClickHouse table engine for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

      <Expandable title="TableEngineInput">
        A Data Pool's table engine.

        <ParamField path="mergeTree" type="MergeTreeTableEngineInput">
          Field for specifying the MergeTree table engine.

          See <a href="/docs/management-api/inputs#mergetreetableengineinput">MergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="replacingMergeTree" type="ReplacingMergeTreeTableEngineInput">
          Field for specifying the ReplacingMergeTree table engine.

          See <a href="/docs/management-api/inputs#replacingmergetreetableengineinput">ReplacingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="summingMergeTree" type="SummingMergeTreeTableEngineInput">
          Field for specifying the SummingMergeTree table engine.

          See <a href="/docs/management-api/inputs#summingmergetreetableengineinput">SummingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="aggregatingMergeTree" type="AggregatingMergeTreeTableEngineInput">
          Field for specifying the AggregatingMergeTree table engine.

          See <a href="/docs/management-api/inputs#aggregatingmergetreetableengineinput">AggregatingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="postgreSql" type="PostgreSqlTableEngineInput">
          Field for specifying the PostgreSQL table engine.

          See <a href="/docs/management-api/inputs#postgresqltableengineinput">PostgreSqlTableEngineInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="partitionBy" type="[String!]">
      The PARTITION BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="primaryKey" type="[String!]">
      The PRIMARY KEY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="orderBy" type="[String!]">
      The ORDER BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="ttl" type="String">
      The TTL clause for the Data Pool's table.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="uniqueId" type="UniqueIdInput" deprecated>
    Optionally specify the Data Pool's unique ID. This will influence the Data Pool's engine settings.

    <span style={{ fontStyle: 'italic' }}>deprecated: Will be removed; use table settings to define the primary key.</span>

    <Expandable title="UniqueIdInput">
      The fields to specify the Data Pool's unique ID column. Propel uses the primary timestamp and a unique ID to compose a primary key for determining whether records should be inserted, deleted, or updated within the Data Pool.

      <ParamField path="columnName" type="String" required>
        The name of the column that represents the unique ID.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## DimensionInput

The fields for creating or modifying a Dimension.

<ParamField path="columnName" type="String" required>
  The name of the column to create the Dimension from.
</ParamField>

## TimestampInput

The fields to specify the Data Pool's primary timestamp column. Propel uses the primary timestamp to order and partition your data in Data Pools. It will serve as the time dimension for your Metrics.

<ParamField path="columnName" type="String" required>
  The name of the column that represents the primary timestamp.
</ParamField>

## TenantInput

The fields to specify the Data Pool's tenant ID column. The tenant ID column is used to control access to your data with access policies.

<ParamField path="columnName" type="String" required>
  The name of the column that represents the tenant ID.
</ParamField>

## UniqueIdInput

The fields to specify the Data Pool's unique ID column. Propel uses the primary timestamp and a unique ID to compose a primary key for determining whether records should be inserted, deleted, or updated within the Data Pool.

<ParamField path="columnName" type="String" required>
  The name of the column that represents the unique ID.
</ParamField>

## DataPoolColumnInput

<ParamField path="columnName" type="String" required>
  The name of the Data Source column that this Data Pool column derives from.
</ParamField>

<ParamField path="type" type="ColumnType" required>
  The Data Pool column's type. This may differ from the corresponding Data Source column's type.

  <Expandable title="ColumnType">
    The Propel data types.

    <ParamField path=" ">
      * `BOOLEAN`: True or false.
      * `STRING`: A variable-length string.
      * `FLOAT`: A 32-bit signed double-precision floating point number.
      * `DOUBLE`: A 64-bit signed double-precision floating point number.
      * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
      * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
      * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
      * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
      * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
      * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
      * `JSON`: A JavaScript Object Notation (JSON) document.
      * `CLICKHOUSE`: A ClickHouse-specific type.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="clickHouseType" type="String">
  The ClickHouse type to use when `type` is set to `CLICKHOUSE`.
</ParamField>

<ParamField path="isNullable" type="Boolean" required>
  Whether the column is nullable, meaning whether it accepts a null value.
</ParamField>

## CreateDataPoolInputV2

The fields for creating a Data Pool.

<ParamField path="dataSource" type="ID">
  The Data Source that will be used to create the Data Pool.
</ParamField>

<ParamField path="table" type="String">
  The table that the Data Pool will sync from.
</ParamField>

<ParamField path="timestamp" type="TimestampInput">
  The table's primary timestamp column.

  Propel uses the primary timestamp to order and partition your data in Data Pools. It's part of what makes Propel
  fast for larger data sets. It will also serve as the time dimension for your Metrics.

  If you do not provide a primary timestamp column, you will need to supply an alternate timestamp when querying your
  Data Pool or its Metrics using the TimeRangeInput.

  <Expandable title="TimestampInput">
    The fields to specify the Data Pool's primary timestamp column. Propel uses the primary timestamp to order and partition your data in Data Pools. It will serve as the time dimension for your Metrics.

    <ParamField path="columnName" type="String" required>
      The name of the column that represents the primary timestamp.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Data Pool's unique name. If not specified, Propel will set the ID as the unique name.
</ParamField>

<ParamField path="description" type="String">
  The Data Pool's description.
</ParamField>

<ParamField path="columns" type="[DataPoolColumnInput!]">
  The list of columns.

  <Expandable title="DataPoolColumnInput">
    <ParamField path="columnName" type="String" required>
      The name of the Data Source column that this Data Pool column derives from.
    </ParamField>

    <ParamField path="type" type="ColumnType" required>
      The Data Pool column's type. This may differ from the corresponding Data Source column's type.

      <Expandable title="ColumnType">
        The Propel data types.

        <ParamField path=" ">
          * `BOOLEAN`: True or false.
          * `STRING`: A variable-length string.
          * `FLOAT`: A 32-bit signed double-precision floating point number.
          * `DOUBLE`: A 64-bit signed double-precision floating point number.
          * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
          * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
          * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
          * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
          * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
          * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
          * `JSON`: A JavaScript Object Notation (JSON) document.
          * `CLICKHOUSE`: A ClickHouse-specific type.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="clickHouseType" type="String">
      The ClickHouse type to use when `type` is set to `CLICKHOUSE`.
    </ParamField>

    <ParamField path="isNullable" type="Boolean" required>
      Whether the column is nullable, meaning whether it accepts a null value.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="syncing" type="DataPoolSyncingInput">
  The Data Pool's syncing settings.

  <Expandable title="DataPoolSyncingInput">
    The fields for modifying the Data Pool syncing.

    <ParamField path="interval" type="DataPoolSyncInterval" required>
      <Expandable title="DataPoolSyncInterval">
        The available Data Pool sync intervals. Specify unit of time between attempts to sync data from your data warehouse.

        Note that the syncing interval is approximate. For example, setting the syncing interval to `EVERY_1_HOUR` does not mean that syncing will occur exactly on the hour. Instead, the syncing interval starts relative to when the Data Pool goes `LIVE`, and Propel will attempt to sync approximately every hour. Additionally, if you pause or resume syncing, this too can shift the syncing interval around.

        <ParamField path=" ">
          * `EVERY_1_MINUTE`
          * `EVERY_5_MINUTES`
          * `EVERY_15_MINUTES`
          * `EVERY_30_MINUTES`
          * `EVERY_1_HOUR`
          * `EVERY_4_HOURS`
          * `EVERY_12_HOURS`
          * `EVERY_24_HOURS`
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="accessControlEnabled" type="Boolean">
  Enables or disables access control for the Data Pool.

  If the Data Pool has access control enabled, Applications must be assigned Data Pool Access
  Policies in order to query the Data Pool and its Metrics.
</ParamField>

<ParamField path="tableSettings" type="TableSettingsInput">
  Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
  default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if any. You can override these
  defaults in order to specify a custom table engine, custom ORDER BY, etc.

  <Expandable title="TableSettingsInput">
    A Data Pool's table settings.

    These describe how the Data Pool's table is created in ClickHouse.

    <ParamField path="engine" type="TableEngineInput">
      The ClickHouse table engine for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

      <Expandable title="TableEngineInput">
        A Data Pool's table engine.

        <ParamField path="mergeTree" type="MergeTreeTableEngineInput">
          Field for specifying the MergeTree table engine.

          See <a href="/docs/management-api/inputs#mergetreetableengineinput">MergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="replacingMergeTree" type="ReplacingMergeTreeTableEngineInput">
          Field for specifying the ReplacingMergeTree table engine.

          See <a href="/docs/management-api/inputs#replacingmergetreetableengineinput">ReplacingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="summingMergeTree" type="SummingMergeTreeTableEngineInput">
          Field for specifying the SummingMergeTree table engine.

          See <a href="/docs/management-api/inputs#summingmergetreetableengineinput">SummingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="aggregatingMergeTree" type="AggregatingMergeTreeTableEngineInput">
          Field for specifying the AggregatingMergeTree table engine.

          See <a href="/docs/management-api/inputs#aggregatingmergetreetableengineinput">AggregatingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="postgreSql" type="PostgreSqlTableEngineInput">
          Field for specifying the PostgreSQL table engine.

          See <a href="/docs/management-api/inputs#postgresqltableengineinput">PostgreSqlTableEngineInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="partitionBy" type="[String!]">
      The PARTITION BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="primaryKey" type="[String!]">
      The PRIMARY KEY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="orderBy" type="[String!]">
      The ORDER BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="ttl" type="String">
      The TTL clause for the Data Pool's table.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="tenant" type="TenantInput" deprecated>
    The Data Pool's optional tenant ID column. The tenant ID column is used to control access to your data with access policies.

    <span style={{ fontStyle: 'italic' }}>deprecated: Will be removed; use Data Pool Access Policies instead</span>

    <Expandable title="TenantInput">
      The fields to specify the Data Pool's tenant ID column. The tenant ID column is used to control access to your data with access policies.

      <ParamField path="columnName" type="String" required>
        The name of the column that represents the tenant ID.
      </ParamField>
    </Expandable>
  </ParamField>

  <ParamField path="uniqueId" type="UniqueIdInput" deprecated>
    The Data Pool's unique ID column. Propel uses the primary timestamp and a unique ID to compose a primary key for determining whether records should be inserted, deleted, or updated within the Data Pool.

    <span style={{ fontStyle: 'italic' }}>deprecated: Will be removed; use table settings to define the primary key.</span>

    <Expandable title="UniqueIdInput">
      The fields to specify the Data Pool's unique ID column. Propel uses the primary timestamp and a unique ID to compose a primary key for determining whether records should be inserted, deleted, or updated within the Data Pool.

      <ParamField path="columnName" type="String" required>
        The name of the column that represents the unique ID.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## ModifyDataPoolInput

The fields for modifying a Data Pool.

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Data Pool to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Data Pool's new unique name.
</ParamField>

<ParamField path="description" type="String">
  The Data Pool's new description.
</ParamField>

<ParamField path="dataRetentionInDays" type="Int">
  The Data Pool's new data retention in days.
</ParamField>

<ParamField path="syncing" type="DataPoolSyncingInput">
  The Data Pool's new syncing settings.

  <Expandable title="DataPoolSyncingInput">
    The fields for modifying the Data Pool syncing.

    <ParamField path="interval" type="DataPoolSyncInterval" required>
      <Expandable title="DataPoolSyncInterval">
        The available Data Pool sync intervals. Specify unit of time between attempts to sync data from your data warehouse.

        Note that the syncing interval is approximate. For example, setting the syncing interval to `EVERY_1_HOUR` does not mean that syncing will occur exactly on the hour. Instead, the syncing interval starts relative to when the Data Pool goes `LIVE`, and Propel will attempt to sync approximately every hour. Additionally, if you pause or resume syncing, this too can shift the syncing interval around.

        <ParamField path=" ">
          * `EVERY_1_MINUTE`
          * `EVERY_5_MINUTES`
          * `EVERY_15_MINUTES`
          * `EVERY_30_MINUTES`
          * `EVERY_1_HOUR`
          * `EVERY_4_HOURS`
          * `EVERY_12_HOURS`
          * `EVERY_24_HOURS`
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timestamp" type="TimestampInput">
  The table's primary timestamp column.

  Propel uses the primary timestamp to order and partition your data in Data Pools. It's part of what makes Propel
  fast for larger data sets. It will also serve as the time dimension for your Metrics.

  If you do not provide a primary timestamp column, you will need to supply an alternate timestamp when querying your
  Data Pool or its Metrics using the TimeRangeInput.

  <Expandable title="TimestampInput">
    The fields to specify the Data Pool's primary timestamp column. Propel uses the primary timestamp to order and partition your data in Data Pools. It will serve as the time dimension for your Metrics.

    <ParamField path="columnName" type="String" required>
      The name of the column that represents the primary timestamp.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="accessControlEnabled" type="Boolean">
  Enables or disables access control for the Data Pool.

  If the Data Pool has access control enabled, Applications must be assigned Data Pool Access
  Policies in order to query the Data Pool and its Metrics.
</ParamField>

## DataPoolSyncingInput

The fields for modifying the Data Pool syncing.

<ParamField path="interval" type="DataPoolSyncInterval" required>
  <Expandable title="DataPoolSyncInterval">
    The available Data Pool sync intervals. Specify unit of time between attempts to sync data from your data warehouse.

    Note that the syncing interval is approximate. For example, setting the syncing interval to `EVERY_1_HOUR` does not mean that syncing will occur exactly on the hour. Instead, the syncing interval starts relative to when the Data Pool goes `LIVE`, and Propel will attempt to sync approximately every hour. Additionally, if you pause or resume syncing, this too can shift the syncing interval around.

    <ParamField path=" ">
      * `EVERY_1_MINUTE`
      * `EVERY_5_MINUTES`
      * `EVERY_15_MINUTES`
      * `EVERY_30_MINUTES`
      * `EVERY_1_HOUR`
      * `EVERY_4_HOURS`
      * `EVERY_12_HOURS`
      * `EVERY_24_HOURS`
    </ParamField>
  </Expandable>
</ParamField>

## DataGridInput

The fields for querying Data Grid records.

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to be queried.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeRange" type="TimeRangeInput">
  The time range for retrieving the records.

  <Expandable title="TimeRangeInput">
    The fields required to specify the time range for a time series, counter, or leaderboard Metric query.

    If no relative or absolute time ranges are provided, Propel defaults to an absolute time range beginning with the earliest record in the Metric's Data Pool and ending with the latest record.

    If both relative and absolute time ranges are provided, the relative time range will take precedence.

    If a `LAST_N` relative time period is selected, an `n` ≥ 1 must be provided. If no `n` is provided or `n` \< 1, a `BAD_REQUEST` error will be returned.

    <ParamField path="timestamp" type="String">
      The timestamp field to use when querying. Defaults to the timestamp configured on the Data Pool or Metric, if any.
      Set this to filter on an alternative timestamp field.
    </ParamField>

    <ParamField path="relative" type="RelativeTimeRange">
      The relative time period.

      <Expandable title="RelativeTimeRange">
        The Relative time ranges are based on the current date and time.

        `THIS` - The current unit of time. For example, if today is June 8, 2022, and
        `THIS_MONTH` is selected, then data for June 2022 would be returned.

        `PREVIOUS` - The previous unit of time. For example, if today is June 8, 2022, and
        `PREVIOUS_MONTH` is selected, then data for May 2022 would be returned. It excludes
        the current unit of time.

        `NEXT` - The next unit of time. For example, if today is June 8, 2022, and
        `NEXT_MONTH` is selected, then data for July 2022 would be returned. It excludes
        the current unit of time.

        `LAST_N` - The last `n` units of time, including the current one. For example, if today
        is June 8, 2022 and `LAST_N_YEARS` with `n` = 3 is selected, then data for 2020, 2021, and
        2022 will be returned. It will include the current time period.

        <ParamField path=" ">
          * `THIS_HOUR`: Starts at the zeroth minute of the current hour and continues for 60 minutes.
          * `TODAY`: Starts at 12:00:00 AM of the current day and continues for 24 hours.
          * `THIS_WEEK`: Starts on Monday, 12:00:00 AM of the current week and continues for seven days.
          * `THIS_MONTH`: Starts at 12:00:00 AM on the first day of the current month and continues for the duration of the month.
          * `THIS_QUARTER`: Starts at 12:00:00 AM on the first day of the current calendar quarter and continues for the duration of the quarter.
          * `THIS_YEAR`: Starts on January 1st, 12:00:00 AM of the current year and continues for the duration of the year.
          * `PREVIOUS_HOUR`: Starts at the zeroth minute of the previous hour and continues for 60 minutes.
          * `YESTERDAY`: Starts at 12:00:00 AM on the day before the today and continues for 24 hours.
          * `PREVIOUS_WEEK`: Starts on Monday, 12:00:00 AM, a week before the current week, and continues for seven days.
          * `PREVIOUS_MONTH`: Starts at 12:00:00 AM on the first day of the month before the current month and continues for the duration of the month.
          * `PREVIOUS_QUARTER`: Starts at 12:00:00 AM on the first day of the calendar quarter before the current quarter and continues for the duration of the quarter.
          * `PREVIOUS_YEAR`: Starts on January 1st, 12:00:00 AM, the year before the current year, and continues for the duration of the year.
          * `NEXT_HOUR`:  Starts at the zeroth minute of the next hour and continues for 60 minutes.
          * `TOMORROW`: " Starts at 12:00:00 AM, the day after the current day, and continues for 24 hours.
          * `NEXT_WEEK`: Starts on Monday, 12:00:00 AM, the week after the current week, and continues for the duration of the week.
          * `NEXT_MONTH`: Starts at 12:00:00 AM on the first day of the next month and continues for the duration of the month.
          * `NEXT_QUARTER`: Starts at 12:00:00 AM on the first day of the next calendar quarter and continues for the duration of the quarter.
          * `NEXT_YEAR`: Starts on January 1st, 12:00:00 AM of the next year and continues for the duration of the year.
          * `LAST_N_MINUTES`: Starts at the zeroth second `n` - 1 minute(s) before the current minute and continues through the current minute. It includes this minute.
          * `LAST_N_HOURS`: Starts at the zeroth minute of the `n` - 1 hour(s) before the current hour, and continues through the current hour. It includes this hour.
          * `LAST_N_DAYS`: Starts at 12:00:00 AM, `n` - 1 day(s) before the current day, and continues through the current day. It includes today.
          * `LAST_N_WEEKS`: Starts on Monday, 12:00:00 AM, `n` - 1 week(s) before the current week, and continues through the current week. It includes this week.
          * `LAST_N_MONTHS`: Starts at 12:00:00 AM on the first day of the month, `n` - 1 month(s) before the current month, and continues through the current month. It includes this month.
          * `LAST_N_QUARTERS`: Starts at 12:00:00 AM on the first day of the calendar quarter `n` - 1 quarter(s) before the current quarter and continues through the current quarter. It includes this quarter.
          * `LAST_N_YEARS`: Starts on January 1st, 12:00:00 AM of the year `n` - 1 year(s) before the current year and continues through the current year. It includes this year.
          * `LAST_15_MINUTES`
          * `LAST_30_MINUTES`
          * `LAST_HOUR`
          * `LAST_4_HOURS`
          * `LAST_12_HOURS`
          * `LAST_24_HOURS`
          * `LAST_7_DAYS`
          * `LAST_30_DAYS`
          * `LAST_90_DAYS`
          * `LAST_3_MONTHS`
          * `LAST_6_MONTHS`
          * `LAST_YEAR`
          * `LAST_2_YEARS`
          * `LAST_5_YEARS`
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="n" type="Int">
      The number of time units for the `LAST_N` relative periods.
    </ParamField>

    <ParamField path="start" type="DateTime">
      The optional start timestamp (inclusive). Defaults to the timestamp of the earliest record in the Data Pool.
    </ParamField>

    <ParamField path="stop" type="DateTime">
      The optional end timestamp (exclusive). Defaults to the timestamp of the latest record in the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeZone" type="String">
  The time zone to use. Dates and times are always returned in UTC, but setting the time zone influences relative time ranges and granularities.

  You can set this to "America/Los\_Angeles", "Europe/Berlin", or any other value in the [IANA time zone database](https://en.wikipedia.org/wiki/Tz_database). Defaults to "UTC".
</ParamField>

<ParamField path="columns" type="[String!]" required>
  The columns to retrieve.
</ParamField>

<ParamField path="orderByColumn" type="Int">
  The index of the column to order the table by. The index is 1-based. If not provided, records will be ordered by their timestamp by default.
</ParamField>

<ParamField path="sort" type="Sort">
  The sort order of the rows. It can be ascending (`ASC`) or descending (`DESC`) order. Defaults to descending (`DESC`) order when not provided.

  <Expandable title="Sort">
    The available sort orders.

    <ParamField path=" ">
      * `ASC`: Sort in ascending order.
      * `DESC`: Sort in descending order.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="filterSql" type="String">
  The filters to apply to the records, in the form of SQL. You may only filter on columns included in the `columns` array input.
</ParamField>

<ParamField path="first" type="Int">
  The number of rows to be returned when paging forward. It can be a number between 1 and 1,000.
</ParamField>

<ParamField path="after" type="String">
  The cursor to use when paging forward.
</ParamField>

<ParamField path="last" type="Int">
  The number of rows to be returned when paging forward. It can be a number between 1 and 1,000.
</ParamField>

<ParamField path="before" type="String">
  The cursor to use when paging backward.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The filters to apply to the records. You may only filter on columns included in the `columns` array input.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## MetricReportInput

The fields for querying a Metric Report.

A Metric Report is a table whose columns include dimensions and Metric values, calculated over a given time range.

<ParamField path="timeRange" type="TimeRangeInput">
  The time range for calculating the Metric Report.

  <Expandable title="TimeRangeInput">
    The fields required to specify the time range for a time series, counter, or leaderboard Metric query.

    If no relative or absolute time ranges are provided, Propel defaults to an absolute time range beginning with the earliest record in the Metric's Data Pool and ending with the latest record.

    If both relative and absolute time ranges are provided, the relative time range will take precedence.

    If a `LAST_N` relative time period is selected, an `n` ≥ 1 must be provided. If no `n` is provided or `n` \< 1, a `BAD_REQUEST` error will be returned.

    <ParamField path="timestamp" type="String">
      The timestamp field to use when querying. Defaults to the timestamp configured on the Data Pool or Metric, if any.
      Set this to filter on an alternative timestamp field.
    </ParamField>

    <ParamField path="relative" type="RelativeTimeRange">
      The relative time period.

      <Expandable title="RelativeTimeRange">
        The Relative time ranges are based on the current date and time.

        `THIS` - The current unit of time. For example, if today is June 8, 2022, and
        `THIS_MONTH` is selected, then data for June 2022 would be returned.

        `PREVIOUS` - The previous unit of time. For example, if today is June 8, 2022, and
        `PREVIOUS_MONTH` is selected, then data for May 2022 would be returned. It excludes
        the current unit of time.

        `NEXT` - The next unit of time. For example, if today is June 8, 2022, and
        `NEXT_MONTH` is selected, then data for July 2022 would be returned. It excludes
        the current unit of time.

        `LAST_N` - The last `n` units of time, including the current one. For example, if today
        is June 8, 2022 and `LAST_N_YEARS` with `n` = 3 is selected, then data for 2020, 2021, and
        2022 will be returned. It will include the current time period.

        <ParamField path=" ">
          * `THIS_HOUR`: Starts at the zeroth minute of the current hour and continues for 60 minutes.
          * `TODAY`: Starts at 12:00:00 AM of the current day and continues for 24 hours.
          * `THIS_WEEK`: Starts on Monday, 12:00:00 AM of the current week and continues for seven days.
          * `THIS_MONTH`: Starts at 12:00:00 AM on the first day of the current month and continues for the duration of the month.
          * `THIS_QUARTER`: Starts at 12:00:00 AM on the first day of the current calendar quarter and continues for the duration of the quarter.
          * `THIS_YEAR`: Starts on January 1st, 12:00:00 AM of the current year and continues for the duration of the year.
          * `PREVIOUS_HOUR`: Starts at the zeroth minute of the previous hour and continues for 60 minutes.
          * `YESTERDAY`: Starts at 12:00:00 AM on the day before the today and continues for 24 hours.
          * `PREVIOUS_WEEK`: Starts on Monday, 12:00:00 AM, a week before the current week, and continues for seven days.
          * `PREVIOUS_MONTH`: Starts at 12:00:00 AM on the first day of the month before the current month and continues for the duration of the month.
          * `PREVIOUS_QUARTER`: Starts at 12:00:00 AM on the first day of the calendar quarter before the current quarter and continues for the duration of the quarter.
          * `PREVIOUS_YEAR`: Starts on January 1st, 12:00:00 AM, the year before the current year, and continues for the duration of the year.
          * `NEXT_HOUR`:  Starts at the zeroth minute of the next hour and continues for 60 minutes.
          * `TOMORROW`: " Starts at 12:00:00 AM, the day after the current day, and continues for 24 hours.
          * `NEXT_WEEK`: Starts on Monday, 12:00:00 AM, the week after the current week, and continues for the duration of the week.
          * `NEXT_MONTH`: Starts at 12:00:00 AM on the first day of the next month and continues for the duration of the month.
          * `NEXT_QUARTER`: Starts at 12:00:00 AM on the first day of the next calendar quarter and continues for the duration of the quarter.
          * `NEXT_YEAR`: Starts on January 1st, 12:00:00 AM of the next year and continues for the duration of the year.
          * `LAST_N_MINUTES`: Starts at the zeroth second `n` - 1 minute(s) before the current minute and continues through the current minute. It includes this minute.
          * `LAST_N_HOURS`: Starts at the zeroth minute of the `n` - 1 hour(s) before the current hour, and continues through the current hour. It includes this hour.
          * `LAST_N_DAYS`: Starts at 12:00:00 AM, `n` - 1 day(s) before the current day, and continues through the current day. It includes today.
          * `LAST_N_WEEKS`: Starts on Monday, 12:00:00 AM, `n` - 1 week(s) before the current week, and continues through the current week. It includes this week.
          * `LAST_N_MONTHS`: Starts at 12:00:00 AM on the first day of the month, `n` - 1 month(s) before the current month, and continues through the current month. It includes this month.
          * `LAST_N_QUARTERS`: Starts at 12:00:00 AM on the first day of the calendar quarter `n` - 1 quarter(s) before the current quarter and continues through the current quarter. It includes this quarter.
          * `LAST_N_YEARS`: Starts on January 1st, 12:00:00 AM of the year `n` - 1 year(s) before the current year and continues through the current year. It includes this year.
          * `LAST_15_MINUTES`
          * `LAST_30_MINUTES`
          * `LAST_HOUR`
          * `LAST_4_HOURS`
          * `LAST_12_HOURS`
          * `LAST_24_HOURS`
          * `LAST_7_DAYS`
          * `LAST_30_DAYS`
          * `LAST_90_DAYS`
          * `LAST_3_MONTHS`
          * `LAST_6_MONTHS`
          * `LAST_YEAR`
          * `LAST_2_YEARS`
          * `LAST_5_YEARS`
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="n" type="Int">
      The number of time units for the `LAST_N` relative periods.
    </ParamField>

    <ParamField path="start" type="DateTime">
      The optional start timestamp (inclusive). Defaults to the timestamp of the earliest record in the Data Pool.
    </ParamField>

    <ParamField path="stop" type="DateTime">
      The optional end timestamp (exclusive). Defaults to the timestamp of the latest record in the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeZone" type="String">
  The time zone to use. Dates and times are always returned in UTC, but setting the time zone influences relative time ranges and granularities.

  You can set this to "America/Los\_Angeles", "Europe/Berlin", or any other value in the [IANA time zone database](https://en.wikipedia.org/wiki/Tz_database). Defaults to "UTC".
</ParamField>

<ParamField path="dimensions" type="[MetricReportDimensionInput!]" required>
  One or many dimensions to group the Metric values by. Typically, dimensions in a report are what you want to compare and rank.

  <Expandable title="MetricReportDimensionInput">
    The fields for specifying a dimension to include in a Metric Report.

    <ParamField path="columnName" type="String" required>
      The column name of the dimension to include in a Metric Report. This must match the name of a Data Pool column.
    </ParamField>

    <ParamField path="displayName" type="String">
      The name to display in the `headers` array when displaying the report. This defaults to the column name if unspecified.
    </ParamField>

    <ParamField path="sort" type="Sort">
      The sort order for the dimension. It can be ascending (`ASC`) or descending (`DESC`) order. Defaults to ascending (`ASC`) order when not provided.

      <Expandable title="Sort">
        The available sort orders.

        <ParamField path=" ">
          * `ASC`: Sort in ascending order.
          * `DESC`: Sort in descending order.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="metrics" type="[MetricReportMetricInput!]" required>
  One or more Metrics to include in the Metric Report. These will be broken down by `dimensions`.

  <Expandable title="MetricReportMetricInput">
    The fields for specifying a Metric to include in a Metric Report.

    <ParamField path="metric" type="MetricInput">
      The Metric to query. You can query a pre-configured Metric by ID or name, or you can query an ad hoc Metric that you define inline.

      <Expandable title="MetricInput">
        <ParamField path="id" type="ID">
          The ID of a pre-configured Metric.
        </ParamField>

        <ParamField path="name" type="String">
          The name of a pre-configured Metric.
        </ParamField>

        <ParamField path="custom" type="CustomMetricQueryInput">
          An ad hoc Custom Metric.

          See <a href="/docs/management-api/inputs#custommetricqueryinput">CustomMetricQueryInput</a>
        </ParamField>

        <ParamField path="count" type="CountMetricQueryInput">
          An ad hoc Count Metric.

          See <a href="/docs/management-api/inputs#countmetricqueryinput">CountMetricQueryInput</a>
        </ParamField>

        <ParamField path="sum" type="SumMetricQueryInput">
          An ad hoc Sum Metric.

          See <a href="/docs/management-api/inputs#summetricqueryinput">SumMetricQueryInput</a>
        </ParamField>

        <ParamField path="average" type="AverageMetricQueryInput">
          An ad hoc Average Metric.

          See <a href="/docs/management-api/inputs#averagemetricqueryinput">AverageMetricQueryInput</a>
        </ParamField>

        <ParamField path="min" type="MinMetricQueryInput">
          An ad hoc Min Metric.

          See <a href="/docs/management-api/inputs#minmetricqueryinput">MinMetricQueryInput</a>
        </ParamField>

        <ParamField path="max" type="MaxMetricQueryInput">
          An ad hoc Max Metric.

          See <a href="/docs/management-api/inputs#maxmetricqueryinput">MaxMetricQueryInput</a>
        </ParamField>

        <ParamField path="countDistinct" type="CountDistinctMetricQueryInput">
          An ad hoc Count Distinct Metric.

          See <a href="/docs/management-api/inputs#countdistinctmetricqueryinput">CountDistinctMetricQueryInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="displayName" type="String">
      The name to display in the `headers` array when displaying the report. This defaults to the Metric's unique name if unspecified.
    </ParamField>

    <ParamField path="filterSql" type="String">
      The Query Filters to apply when calculating the Metric, in the form of SQL.
    </ParamField>

    <ParamField path="sort" type="Sort">
      The sort order for the Metric. It can be ascending (`ASC`) or descending (`DESC`) order. Defaults to descending (`DESC`) order when not provided.

      <Expandable title="Sort">
        The available sort orders.

        <ParamField path=" ">
          * `ASC`: Sort in ascending order.
          * `DESC`: Sort in descending order.
        </ParamField>
      </Expandable>
    </ParamField>

    <Expandable title="Deprecated Fields">
      <ParamField path="uniqueName" type="String" deprecated>
        The Metric's unique name. If not specified, Propel will lookup the Metric by ID.

        <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
      </ParamField>

      <ParamField path="id" type="ID" deprecated>
        The Metric's ID. If not specified, Propel will lookup the Metric by unique name.

        <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
      </ParamField>

      <ParamField path="filters" type="[FilterInput!]" deprecated>
        The Query Filters to apply when calculating the Metric.

        <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

        <Expandable title="FilterInput">
          The fields of a filter.

          You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

          ```
          (value > 0 AND value <= 100) OR status = "confirmed"
          ```

          you could write

          ```
          {
            "column": "value",
            "operator": "GREATER_THAN",
            "value": "0",
            "and": [{
              "column": "value",
              "operator": "LESS_THAN_OR_EQUAL_TO",
              "value": "0"
            }],
            "or": [{
              "column": "status",
              "operator": "EQUALS",
              "value": "confirmed"
            }]
          }
          ```

          Note that `and` takes precedence over `or`.

          <ParamField path="column" type="String" required>
            The name of the column to filter on.
          </ParamField>

          <ParamField path="operator" type="FilterOperator" required>
            The operation to perform when comparing the column and filter values.

            See <a href="/docs/management-api/enums#filteroperator">FilterOperator</a>
          </ParamField>

          <ParamField path="value" type="String">
            The value to compare the column to.
          </ParamField>

          <ParamField path="and" type="[FilterInput!]">
            Additional filters to AND with this one. AND takes precedence over OR.
          </ParamField>

          <ParamField path="or" type="[FilterInput!]">
            Additional filters to OR with this one. AND takes precedence over OR.
          </ParamField>
        </Expandable>
      </ParamField>
    </Expandable>
  </Expandable>
</ParamField>

<ParamField path="filterSql" type="String">
  The Query Filters to apply when building the Metric Report, in the form of SQL. These can be used to filter out rows.
</ParamField>

<ParamField path="orderByColumn" type="Int">
  The index of the column to order the Metric Report by. The index is 1-based and defaults to the first Metric column. In other words, by default, reports are ordered by the first Metric; however, you can order by the second Metric, third Metric, etc., by overriding the `orderByColumn` input. You can also order by dimensions this way.
</ParamField>

<ParamField path="first" type="Int">
  The number of rows to be returned when paging forward. It can be a number between 1 and 1,000.
</ParamField>

<ParamField path="after" type="String">
  The cursor to use when paging forward.
</ParamField>

<ParamField path="last" type="Int">
  The number of rows to be returned when paging forward. It can be a number between 1 and 1,000.
</ParamField>

<ParamField path="before" type="String">
  The cursor to use when paging backward.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Query Filters to apply when building the Metric Report. These can be used to filter out rows.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## MetricReportDimensionInput

The fields for specifying a dimension to include in a Metric Report.

<ParamField path="columnName" type="String" required>
  The column name of the dimension to include in a Metric Report. This must match the name of a Data Pool column.
</ParamField>

<ParamField path="displayName" type="String">
  The name to display in the `headers` array when displaying the report. This defaults to the column name if unspecified.
</ParamField>

<ParamField path="sort" type="Sort">
  The sort order for the dimension. It can be ascending (`ASC`) or descending (`DESC`) order. Defaults to ascending (`ASC`) order when not provided.

  <Expandable title="Sort">
    The available sort orders.

    <ParamField path=" ">
      * `ASC`: Sort in ascending order.
      * `DESC`: Sort in descending order.
    </ParamField>
  </Expandable>
</ParamField>

## MetricReportMetricInput

The fields for specifying a Metric to include in a Metric Report.

<ParamField path="metric" type="MetricInput">
  The Metric to query. You can query a pre-configured Metric by ID or name, or you can query an ad hoc Metric that you define inline.

  <Expandable title="MetricInput">
    <ParamField path="id" type="ID">
      The ID of a pre-configured Metric.
    </ParamField>

    <ParamField path="name" type="String">
      The name of a pre-configured Metric.
    </ParamField>

    <ParamField path="custom" type="CustomMetricQueryInput">
      An ad hoc Custom Metric.

      <Expandable title="CustomMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="expression" type="String" required>
          Custom expression for defining the Metric.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="count" type="CountMetricQueryInput">
      An ad hoc Count Metric.

      <Expandable title="CountMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="sum" type="SumMetricQueryInput">
      An ad hoc Sum Metric.

      <Expandable title="SumMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to be summed.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="average" type="AverageMetricQueryInput">
      An ad hoc Average Metric.

      <Expandable title="AverageMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to be averaged.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="min" type="MinMetricQueryInput">
      An ad hoc Min Metric.

      <Expandable title="MinMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to calculate the minimum from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="max" type="MaxMetricQueryInput">
      An ad hoc Max Metric.

      <Expandable title="MaxMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to calculate the maximum from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="countDistinct" type="CountDistinctMetricQueryInput">
      An ad hoc Count Distinct Metric.

      <Expandable title="CountDistinctMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="dimension" type="DimensionInput" required>
          The column to count distinct values from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="displayName" type="String">
  The name to display in the `headers` array when displaying the report. This defaults to the Metric's unique name if unspecified.
</ParamField>

<ParamField path="filterSql" type="String">
  The Query Filters to apply when calculating the Metric, in the form of SQL.
</ParamField>

<ParamField path="sort" type="Sort">
  The sort order for the Metric. It can be ascending (`ASC`) or descending (`DESC`) order. Defaults to descending (`DESC`) order when not provided.

  <Expandable title="Sort">
    The available sort orders.

    <ParamField path=" ">
      * `ASC`: Sort in ascending order.
      * `DESC`: Sort in descending order.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="uniqueName" type="String" deprecated>
    The Metric's unique name. If not specified, Propel will lookup the Metric by ID.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
  </ParamField>

  <ParamField path="id" type="ID" deprecated>
    The Metric's ID. If not specified, Propel will lookup the Metric by unique name.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
  </ParamField>

  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Query Filters to apply when calculating the Metric.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateCountMetricInput

The fields for creating a new Count Metric.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that powers this Metric.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Metric's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Metric's description.
</ParamField>

<ParamField path="filterSql" type="String">
  The Metric's Filters, in the form of SQL. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]">
  The Metric's Dimensions. Dimensions define the columns that will be available to filter the Metric at query time.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Metric's Filters. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateSumMetricInput

The fields for creating a new Sum Metric.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that powers this Metric.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Metric's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Metric's description.
</ParamField>

<ParamField path="filterSql" type="String">
  The Metric's Filters, in the form of SQL. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]">
  The Metric's Dimensions. Dimensions define the columns that will be available to filter the Metric at query time.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="measure" type="DimensionInput" required>
  The column to be summed.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Metric's Filters. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateAverageMetricInput

The fields for creating a new Average Metric.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that powers this Metric.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Metric's unique name.
</ParamField>

<ParamField path="description" type="String">
  The Metric's description.
</ParamField>

<ParamField path="filterSql" type="String">
  The Metric's Filters, in the form of SQL. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]">
  The Metric's Dimensions. Dimensions define the columns that will be available to filter the Metric at query time.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="measure" type="DimensionInput" required>
  The column to be averaged.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Metric's Filters. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateMinMetricInput

The fields for creating a new Minimum (Min) Metric.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that powers this Metric.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Metric's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Metric's description.
</ParamField>

<ParamField path="filterSql" type="String">
  The Metric's Filters, in the form of SQL. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]">
  The Metric's Dimensions. Dimensions define the columns that will be available to filter the Metric at query time.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="measure" type="DimensionInput" required>
  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Metric's Filters. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateMaxMetricInput

The fields for creating a new Maximum (Max) Metric.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that powers this Metric.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Metric's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Metric's description.
</ParamField>

<ParamField path="filterSql" type="String">
  The Metric's Filters, in the form of SQL. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]">
  The Metric's Dimensions. Dimensions define the columns that will be available to filter the Metric at query time.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="measure" type="DimensionInput" required>
  The column to calculate the maximum from.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Metric's Filters. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateCountDistinctMetricInput

The fields for creating a new Count Distinct Metric.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that powers this Metric.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Metric's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Metric's description.
</ParamField>

<ParamField path="filterSql" type="String">
  The Metric's Filters, in the form of SQL. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]">
  The Metric's Dimensions. Dimensions define the columns that will be available to filter the Metric at query time.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="dimension" type="DimensionInput" required>
  The Dimension over which the count distinct operation is going to be performed.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Metric's Filters. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateCustomMetricInput

The fields for creating a new Custom Metric.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that powers this Metric.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Metric's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Metric's description.
</ParamField>

<ParamField path="filterSql" type="String">
  The Metric's Filters, in the form of SQL. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]">
  The Metric's Dimensions. Dimensions define the columns that will be available to filter the Metric at query time.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="expression" type="String" required>
  The expression that defines the aggregation function for this Metric.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Metric's Filters. Metric Filters allow defining a Metric with a subset of records from the given Data Pool. If no Filters are present, all records will be included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## ModifyMetricInput

The fields for modifying a Metric.

<ParamField path="metric" type="ID" required>
  The ID of the Metric to modify.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Metric's new unique name.
</ParamField>

<ParamField path="description" type="String">
  The Metric's new description.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]">
  The Metric's new Dimensions. Used to add or remove Dimensions.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="filterSql" type="String">
  The Metric's new Filters, in the form of SQL. Used to add or remove Metric Filters.
</ParamField>

<ParamField path="accessControlEnabled" type="Boolean">
  Enables or disables access control for the Metric.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Metric's new Filters. Used to add or remove Metric Filters.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## MigrateMetricInput

The fields for migrating a Metric's Data Pool.

<ParamField path="metricId" type="ID" required>
  The Metric that is going to be migrated.
</ParamField>

<ParamField path="newDataPoolId" type="ID" required>
  The DataPool to which the Metric is going to be migrated.
</ParamField>

## DataPoolInput

<ParamField path="id" type="ID">
  The ID of the Data Pool.
</ParamField>

<ParamField path="name" type="String">
  The name of the Data Pool.
</ParamField>

## CustomMetricQueryInput

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to which this Metric belongs.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="expression" type="String" required>
  Custom expression for defining the Metric.
</ParamField>

## CountMetricQueryInput

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to which this Metric belongs.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

## SumMetricQueryInput

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to which this Metric belongs.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="measure" type="DimensionInput" required>
  The column to be summed.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

## AverageMetricQueryInput

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to which this Metric belongs.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="measure" type="DimensionInput" required>
  The column to be averaged.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

## MinMetricQueryInput

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to which this Metric belongs.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="measure" type="DimensionInput" required>
  The column to calculate the minimum from.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

## MaxMetricQueryInput

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to which this Metric belongs.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="measure" type="DimensionInput" required>
  The column to calculate the maximum from.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

## CountDistinctMetricQueryInput

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to which this Metric belongs.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="dimension" type="DimensionInput" required>
  The column to count distinct values from.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

## MetricInput

<ParamField path="id" type="ID">
  The ID of a pre-configured Metric.
</ParamField>

<ParamField path="name" type="String">
  The name of a pre-configured Metric.
</ParamField>

<ParamField path="custom" type="CustomMetricQueryInput">
  An ad hoc Custom Metric.

  <Expandable title="CustomMetricQueryInput">
    <ParamField path="dataPool" type="DataPoolInput" required>
      The Data Pool to which this Metric belongs.

      <Expandable title="DataPoolInput">
        <ParamField path="id" type="ID">
          The ID of the Data Pool.
        </ParamField>

        <ParamField path="name" type="String">
          The name of the Data Pool.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="expression" type="String" required>
      Custom expression for defining the Metric.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="count" type="CountMetricQueryInput">
  An ad hoc Count Metric.

  <Expandable title="CountMetricQueryInput">
    <ParamField path="dataPool" type="DataPoolInput" required>
      The Data Pool to which this Metric belongs.

      <Expandable title="DataPoolInput">
        <ParamField path="id" type="ID">
          The ID of the Data Pool.
        </ParamField>

        <ParamField path="name" type="String">
          The name of the Data Pool.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="sum" type="SumMetricQueryInput">
  An ad hoc Sum Metric.

  <Expandable title="SumMetricQueryInput">
    <ParamField path="dataPool" type="DataPoolInput" required>
      The Data Pool to which this Metric belongs.

      <Expandable title="DataPoolInput">
        <ParamField path="id" type="ID">
          The ID of the Data Pool.
        </ParamField>

        <ParamField path="name" type="String">
          The name of the Data Pool.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="measure" type="DimensionInput" required>
      The column to be summed.

      <Expandable title="DimensionInput">
        The fields for creating or modifying a Dimension.

        <ParamField path="columnName" type="String" required>
          The name of the column to create the Dimension from.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="average" type="AverageMetricQueryInput">
  An ad hoc Average Metric.

  <Expandable title="AverageMetricQueryInput">
    <ParamField path="dataPool" type="DataPoolInput" required>
      The Data Pool to which this Metric belongs.

      <Expandable title="DataPoolInput">
        <ParamField path="id" type="ID">
          The ID of the Data Pool.
        </ParamField>

        <ParamField path="name" type="String">
          The name of the Data Pool.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="measure" type="DimensionInput" required>
      The column to be averaged.

      <Expandable title="DimensionInput">
        The fields for creating or modifying a Dimension.

        <ParamField path="columnName" type="String" required>
          The name of the column to create the Dimension from.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="min" type="MinMetricQueryInput">
  An ad hoc Min Metric.

  <Expandable title="MinMetricQueryInput">
    <ParamField path="dataPool" type="DataPoolInput" required>
      The Data Pool to which this Metric belongs.

      <Expandable title="DataPoolInput">
        <ParamField path="id" type="ID">
          The ID of the Data Pool.
        </ParamField>

        <ParamField path="name" type="String">
          The name of the Data Pool.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="measure" type="DimensionInput" required>
      The column to calculate the minimum from.

      <Expandable title="DimensionInput">
        The fields for creating or modifying a Dimension.

        <ParamField path="columnName" type="String" required>
          The name of the column to create the Dimension from.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="max" type="MaxMetricQueryInput">
  An ad hoc Max Metric.

  <Expandable title="MaxMetricQueryInput">
    <ParamField path="dataPool" type="DataPoolInput" required>
      The Data Pool to which this Metric belongs.

      <Expandable title="DataPoolInput">
        <ParamField path="id" type="ID">
          The ID of the Data Pool.
        </ParamField>

        <ParamField path="name" type="String">
          The name of the Data Pool.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="measure" type="DimensionInput" required>
      The column to calculate the maximum from.

      <Expandable title="DimensionInput">
        The fields for creating or modifying a Dimension.

        <ParamField path="columnName" type="String" required>
          The name of the column to create the Dimension from.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="countDistinct" type="CountDistinctMetricQueryInput">
  An ad hoc Count Distinct Metric.

  <Expandable title="CountDistinctMetricQueryInput">
    <ParamField path="dataPool" type="DataPoolInput" required>
      The Data Pool to which this Metric belongs.

      <Expandable title="DataPoolInput">
        <ParamField path="id" type="ID">
          The ID of the Data Pool.
        </ParamField>

        <ParamField path="name" type="String">
          The name of the Data Pool.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="dimension" type="DimensionInput" required>
      The column to count distinct values from.

      <Expandable title="DimensionInput">
        The fields for creating or modifying a Dimension.

        <ParamField path="columnName" type="String" required>
          The name of the column to create the Dimension from.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## CounterInput

The fields for querying a Metric in counter format.

A Metric's counter query returns a single value over a given time range.

<ParamField path="metric" type="MetricInput">
  The Metric to query. You can query a pre-configured Metric by ID or name, or you can query an ad hoc Metric that you define inline.

  <Expandable title="MetricInput">
    <ParamField path="id" type="ID">
      The ID of a pre-configured Metric.
    </ParamField>

    <ParamField path="name" type="String">
      The name of a pre-configured Metric.
    </ParamField>

    <ParamField path="custom" type="CustomMetricQueryInput">
      An ad hoc Custom Metric.

      <Expandable title="CustomMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="expression" type="String" required>
          Custom expression for defining the Metric.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="count" type="CountMetricQueryInput">
      An ad hoc Count Metric.

      <Expandable title="CountMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="sum" type="SumMetricQueryInput">
      An ad hoc Sum Metric.

      <Expandable title="SumMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to be summed.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="average" type="AverageMetricQueryInput">
      An ad hoc Average Metric.

      <Expandable title="AverageMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to be averaged.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="min" type="MinMetricQueryInput">
      An ad hoc Min Metric.

      <Expandable title="MinMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to calculate the minimum from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="max" type="MaxMetricQueryInput">
      An ad hoc Max Metric.

      <Expandable title="MaxMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to calculate the maximum from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="countDistinct" type="CountDistinctMetricQueryInput">
      An ad hoc Count Distinct Metric.

      <Expandable title="CountDistinctMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="dimension" type="DimensionInput" required>
          The column to count distinct values from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeRange" type="TimeRangeInput">
  The time range for calculating the counter.

  <Expandable title="TimeRangeInput">
    The fields required to specify the time range for a time series, counter, or leaderboard Metric query.

    If no relative or absolute time ranges are provided, Propel defaults to an absolute time range beginning with the earliest record in the Metric's Data Pool and ending with the latest record.

    If both relative and absolute time ranges are provided, the relative time range will take precedence.

    If a `LAST_N` relative time period is selected, an `n` ≥ 1 must be provided. If no `n` is provided or `n` \< 1, a `BAD_REQUEST` error will be returned.

    <ParamField path="timestamp" type="String">
      The timestamp field to use when querying. Defaults to the timestamp configured on the Data Pool or Metric, if any.
      Set this to filter on an alternative timestamp field.
    </ParamField>

    <ParamField path="relative" type="RelativeTimeRange">
      The relative time period.

      <Expandable title="RelativeTimeRange">
        The Relative time ranges are based on the current date and time.

        `THIS` - The current unit of time. For example, if today is June 8, 2022, and
        `THIS_MONTH` is selected, then data for June 2022 would be returned.

        `PREVIOUS` - The previous unit of time. For example, if today is June 8, 2022, and
        `PREVIOUS_MONTH` is selected, then data for May 2022 would be returned. It excludes
        the current unit of time.

        `NEXT` - The next unit of time. For example, if today is June 8, 2022, and
        `NEXT_MONTH` is selected, then data for July 2022 would be returned. It excludes
        the current unit of time.

        `LAST_N` - The last `n` units of time, including the current one. For example, if today
        is June 8, 2022 and `LAST_N_YEARS` with `n` = 3 is selected, then data for 2020, 2021, and
        2022 will be returned. It will include the current time period.

        <ParamField path=" ">
          * `THIS_HOUR`: Starts at the zeroth minute of the current hour and continues for 60 minutes.
          * `TODAY`: Starts at 12:00:00 AM of the current day and continues for 24 hours.
          * `THIS_WEEK`: Starts on Monday, 12:00:00 AM of the current week and continues for seven days.
          * `THIS_MONTH`: Starts at 12:00:00 AM on the first day of the current month and continues for the duration of the month.
          * `THIS_QUARTER`: Starts at 12:00:00 AM on the first day of the current calendar quarter and continues for the duration of the quarter.
          * `THIS_YEAR`: Starts on January 1st, 12:00:00 AM of the current year and continues for the duration of the year.
          * `PREVIOUS_HOUR`: Starts at the zeroth minute of the previous hour and continues for 60 minutes.
          * `YESTERDAY`: Starts at 12:00:00 AM on the day before the today and continues for 24 hours.
          * `PREVIOUS_WEEK`: Starts on Monday, 12:00:00 AM, a week before the current week, and continues for seven days.
          * `PREVIOUS_MONTH`: Starts at 12:00:00 AM on the first day of the month before the current month and continues for the duration of the month.
          * `PREVIOUS_QUARTER`: Starts at 12:00:00 AM on the first day of the calendar quarter before the current quarter and continues for the duration of the quarter.
          * `PREVIOUS_YEAR`: Starts on January 1st, 12:00:00 AM, the year before the current year, and continues for the duration of the year.
          * `NEXT_HOUR`:  Starts at the zeroth minute of the next hour and continues for 60 minutes.
          * `TOMORROW`: " Starts at 12:00:00 AM, the day after the current day, and continues for 24 hours.
          * `NEXT_WEEK`: Starts on Monday, 12:00:00 AM, the week after the current week, and continues for the duration of the week.
          * `NEXT_MONTH`: Starts at 12:00:00 AM on the first day of the next month and continues for the duration of the month.
          * `NEXT_QUARTER`: Starts at 12:00:00 AM on the first day of the next calendar quarter and continues for the duration of the quarter.
          * `NEXT_YEAR`: Starts on January 1st, 12:00:00 AM of the next year and continues for the duration of the year.
          * `LAST_N_MINUTES`: Starts at the zeroth second `n` - 1 minute(s) before the current minute and continues through the current minute. It includes this minute.
          * `LAST_N_HOURS`: Starts at the zeroth minute of the `n` - 1 hour(s) before the current hour, and continues through the current hour. It includes this hour.
          * `LAST_N_DAYS`: Starts at 12:00:00 AM, `n` - 1 day(s) before the current day, and continues through the current day. It includes today.
          * `LAST_N_WEEKS`: Starts on Monday, 12:00:00 AM, `n` - 1 week(s) before the current week, and continues through the current week. It includes this week.
          * `LAST_N_MONTHS`: Starts at 12:00:00 AM on the first day of the month, `n` - 1 month(s) before the current month, and continues through the current month. It includes this month.
          * `LAST_N_QUARTERS`: Starts at 12:00:00 AM on the first day of the calendar quarter `n` - 1 quarter(s) before the current quarter and continues through the current quarter. It includes this quarter.
          * `LAST_N_YEARS`: Starts on January 1st, 12:00:00 AM of the year `n` - 1 year(s) before the current year and continues through the current year. It includes this year.
          * `LAST_15_MINUTES`
          * `LAST_30_MINUTES`
          * `LAST_HOUR`
          * `LAST_4_HOURS`
          * `LAST_12_HOURS`
          * `LAST_24_HOURS`
          * `LAST_7_DAYS`
          * `LAST_30_DAYS`
          * `LAST_90_DAYS`
          * `LAST_3_MONTHS`
          * `LAST_6_MONTHS`
          * `LAST_YEAR`
          * `LAST_2_YEARS`
          * `LAST_5_YEARS`
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="n" type="Int">
      The number of time units for the `LAST_N` relative periods.
    </ParamField>

    <ParamField path="start" type="DateTime">
      The optional start timestamp (inclusive). Defaults to the timestamp of the earliest record in the Data Pool.
    </ParamField>

    <ParamField path="stop" type="DateTime">
      The optional end timestamp (exclusive). Defaults to the timestamp of the latest record in the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeZone" type="String">
  The time zone to use. Dates and times are always returned in UTC, but setting the time zone influences relative time ranges and granularities.

  You can set this to "America/Los\_Angeles", "Europe/Berlin", or any other value in the [IANA time zone database](https://en.wikipedia.org/wiki/Tz_database). Defaults to "UTC".
</ParamField>

<ParamField path="filterSql" type="String">
  The Query Filters to apply before retrieving the counter data, in the form of SQL. If no Query Filters are provided, all data is included.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="metricId" type="ID" deprecated>
    The ID of the Metric to query.

    Required if `metricName` is not specified.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
  </ParamField>

  <ParamField path="metricName" type="String" deprecated>
    The name of the Metric to query.

    Required if `metricId` is not specified.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
  </ParamField>

  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Query Filters to apply before retrieving the counter data. If no Query Filters are provided, all data is included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## TimeSeriesInput

The fields for querying a Metric in time series format.

A Metric's time series query returns the values over a given time range aggregated by a given time granularity; day, month, or year, for example.

<ParamField path="metric" type="MetricInput">
  The Metric to Query. It can be a pre-created one or it can be inlined here.

  <Expandable title="MetricInput">
    <ParamField path="id" type="ID">
      The ID of a pre-configured Metric.
    </ParamField>

    <ParamField path="name" type="String">
      The name of a pre-configured Metric.
    </ParamField>

    <ParamField path="custom" type="CustomMetricQueryInput">
      An ad hoc Custom Metric.

      <Expandable title="CustomMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="expression" type="String" required>
          Custom expression for defining the Metric.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="count" type="CountMetricQueryInput">
      An ad hoc Count Metric.

      <Expandable title="CountMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="sum" type="SumMetricQueryInput">
      An ad hoc Sum Metric.

      <Expandable title="SumMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to be summed.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="average" type="AverageMetricQueryInput">
      An ad hoc Average Metric.

      <Expandable title="AverageMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to be averaged.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="min" type="MinMetricQueryInput">
      An ad hoc Min Metric.

      <Expandable title="MinMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to calculate the minimum from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="max" type="MaxMetricQueryInput">
      An ad hoc Max Metric.

      <Expandable title="MaxMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to calculate the maximum from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="countDistinct" type="CountDistinctMetricQueryInput">
      An ad hoc Count Distinct Metric.

      <Expandable title="CountDistinctMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="dimension" type="DimensionInput" required>
          The column to count distinct values from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeRange" type="TimeRangeInput">
  The time range for calculating the time series.

  <Expandable title="TimeRangeInput">
    The fields required to specify the time range for a time series, counter, or leaderboard Metric query.

    If no relative or absolute time ranges are provided, Propel defaults to an absolute time range beginning with the earliest record in the Metric's Data Pool and ending with the latest record.

    If both relative and absolute time ranges are provided, the relative time range will take precedence.

    If a `LAST_N` relative time period is selected, an `n` ≥ 1 must be provided. If no `n` is provided or `n` \< 1, a `BAD_REQUEST` error will be returned.

    <ParamField path="timestamp" type="String">
      The timestamp field to use when querying. Defaults to the timestamp configured on the Data Pool or Metric, if any.
      Set this to filter on an alternative timestamp field.
    </ParamField>

    <ParamField path="relative" type="RelativeTimeRange">
      The relative time period.

      <Expandable title="RelativeTimeRange">
        The Relative time ranges are based on the current date and time.

        `THIS` - The current unit of time. For example, if today is June 8, 2022, and
        `THIS_MONTH` is selected, then data for June 2022 would be returned.

        `PREVIOUS` - The previous unit of time. For example, if today is June 8, 2022, and
        `PREVIOUS_MONTH` is selected, then data for May 2022 would be returned. It excludes
        the current unit of time.

        `NEXT` - The next unit of time. For example, if today is June 8, 2022, and
        `NEXT_MONTH` is selected, then data for July 2022 would be returned. It excludes
        the current unit of time.

        `LAST_N` - The last `n` units of time, including the current one. For example, if today
        is June 8, 2022 and `LAST_N_YEARS` with `n` = 3 is selected, then data for 2020, 2021, and
        2022 will be returned. It will include the current time period.

        <ParamField path=" ">
          * `THIS_HOUR`: Starts at the zeroth minute of the current hour and continues for 60 minutes.
          * `TODAY`: Starts at 12:00:00 AM of the current day and continues for 24 hours.
          * `THIS_WEEK`: Starts on Monday, 12:00:00 AM of the current week and continues for seven days.
          * `THIS_MONTH`: Starts at 12:00:00 AM on the first day of the current month and continues for the duration of the month.
          * `THIS_QUARTER`: Starts at 12:00:00 AM on the first day of the current calendar quarter and continues for the duration of the quarter.
          * `THIS_YEAR`: Starts on January 1st, 12:00:00 AM of the current year and continues for the duration of the year.
          * `PREVIOUS_HOUR`: Starts at the zeroth minute of the previous hour and continues for 60 minutes.
          * `YESTERDAY`: Starts at 12:00:00 AM on the day before the today and continues for 24 hours.
          * `PREVIOUS_WEEK`: Starts on Monday, 12:00:00 AM, a week before the current week, and continues for seven days.
          * `PREVIOUS_MONTH`: Starts at 12:00:00 AM on the first day of the month before the current month and continues for the duration of the month.
          * `PREVIOUS_QUARTER`: Starts at 12:00:00 AM on the first day of the calendar quarter before the current quarter and continues for the duration of the quarter.
          * `PREVIOUS_YEAR`: Starts on January 1st, 12:00:00 AM, the year before the current year, and continues for the duration of the year.
          * `NEXT_HOUR`:  Starts at the zeroth minute of the next hour and continues for 60 minutes.
          * `TOMORROW`: " Starts at 12:00:00 AM, the day after the current day, and continues for 24 hours.
          * `NEXT_WEEK`: Starts on Monday, 12:00:00 AM, the week after the current week, and continues for the duration of the week.
          * `NEXT_MONTH`: Starts at 12:00:00 AM on the first day of the next month and continues for the duration of the month.
          * `NEXT_QUARTER`: Starts at 12:00:00 AM on the first day of the next calendar quarter and continues for the duration of the quarter.
          * `NEXT_YEAR`: Starts on January 1st, 12:00:00 AM of the next year and continues for the duration of the year.
          * `LAST_N_MINUTES`: Starts at the zeroth second `n` - 1 minute(s) before the current minute and continues through the current minute. It includes this minute.
          * `LAST_N_HOURS`: Starts at the zeroth minute of the `n` - 1 hour(s) before the current hour, and continues through the current hour. It includes this hour.
          * `LAST_N_DAYS`: Starts at 12:00:00 AM, `n` - 1 day(s) before the current day, and continues through the current day. It includes today.
          * `LAST_N_WEEKS`: Starts on Monday, 12:00:00 AM, `n` - 1 week(s) before the current week, and continues through the current week. It includes this week.
          * `LAST_N_MONTHS`: Starts at 12:00:00 AM on the first day of the month, `n` - 1 month(s) before the current month, and continues through the current month. It includes this month.
          * `LAST_N_QUARTERS`: Starts at 12:00:00 AM on the first day of the calendar quarter `n` - 1 quarter(s) before the current quarter and continues through the current quarter. It includes this quarter.
          * `LAST_N_YEARS`: Starts on January 1st, 12:00:00 AM of the year `n` - 1 year(s) before the current year and continues through the current year. It includes this year.
          * `LAST_15_MINUTES`
          * `LAST_30_MINUTES`
          * `LAST_HOUR`
          * `LAST_4_HOURS`
          * `LAST_12_HOURS`
          * `LAST_24_HOURS`
          * `LAST_7_DAYS`
          * `LAST_30_DAYS`
          * `LAST_90_DAYS`
          * `LAST_3_MONTHS`
          * `LAST_6_MONTHS`
          * `LAST_YEAR`
          * `LAST_2_YEARS`
          * `LAST_5_YEARS`
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="n" type="Int">
      The number of time units for the `LAST_N` relative periods.
    </ParamField>

    <ParamField path="start" type="DateTime">
      The optional start timestamp (inclusive). Defaults to the timestamp of the earliest record in the Data Pool.
    </ParamField>

    <ParamField path="stop" type="DateTime">
      The optional end timestamp (exclusive). Defaults to the timestamp of the latest record in the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeZone" type="String">
  The time zone to use. Dates and times are always returned in UTC, but setting the time zone influences relative time ranges and granularities.

  You can set this to "America/Los\_Angeles", "Europe/Berlin", or any other value in the [IANA time zone database](https://en.wikipedia.org/wiki/Tz_database). Defaults to "UTC".
</ParamField>

<ParamField path="granularity" type="TimeSeriesGranularity" required>
  The time granularity (hour, day, month, etc.) to aggregate the Metric values by.

  <Expandable title="TimeSeriesGranularity">
    The available time series granularities. Granularities define the unit of time to aggregate the Metric data for a time series query.

    For example, if the granularity is set to `DAY`, then the the time series query will return a label and a value for each day.

    If there are no records for a given time series granularity, Propel will return the label and a value of "0" so that the time series can be properly visualized.

    <ParamField path=" ">
      * `MINUTE`: Aggregates values by minute intervals.
      * `FIVE_MINUTES`: Aggregates values by 5-minute intervals.
      * `TEN_MINUTES`: Aggregates values by 10-minute intervals.
      * `FIFTEEN_MINUTES`: Aggregates values by 15-minute intervals.
      * `HOUR`: Aggregates values by hourly intervals.
      * `DAY`: Aggregates values by daily intervals.
      * `WEEK`: Aggregates values by weekly intervals.
      * `MONTH`: Aggregates values by monthly intervals.
      * `YEAR`: Aggregates values by yearly intervals.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="filterSql" type="String">
  The Query Filters to apply before retrieving the time series data, in the form of SQL. If no Query Filters are provided, all data is included.
</ParamField>

<ParamField path="groupBy" type="[String!]">
  Columns to group by.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="metricId" type="ID" deprecated>
    The ID of the Metric to query.

    Required if `metricName` is not specified.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
  </ParamField>

  <ParamField path="metricName" type="String" deprecated>
    The name of the Metric to query.

    Required if `metricId` is not specified.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
  </ParamField>

  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Query Filters to apply before retrieving the time series data. If no Query Filters are provided, all data is included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## LeaderboardInput

The fields for querying a Metric in leaderboard format.

A Metric's leaderboard query returns an ordered table of Dimension and Metric values over a given time range.

<ParamField path="metric" type="MetricInput">
  The Metric to query. You can query a pre-configured Metric by ID or name, or you can query an ad hoc Metric that you define inline.

  <Expandable title="MetricInput">
    <ParamField path="id" type="ID">
      The ID of a pre-configured Metric.
    </ParamField>

    <ParamField path="name" type="String">
      The name of a pre-configured Metric.
    </ParamField>

    <ParamField path="custom" type="CustomMetricQueryInput">
      An ad hoc Custom Metric.

      <Expandable title="CustomMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="expression" type="String" required>
          Custom expression for defining the Metric.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="count" type="CountMetricQueryInput">
      An ad hoc Count Metric.

      <Expandable title="CountMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="sum" type="SumMetricQueryInput">
      An ad hoc Sum Metric.

      <Expandable title="SumMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to be summed.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="average" type="AverageMetricQueryInput">
      An ad hoc Average Metric.

      <Expandable title="AverageMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to be averaged.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="min" type="MinMetricQueryInput">
      An ad hoc Min Metric.

      <Expandable title="MinMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to calculate the minimum from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="max" type="MaxMetricQueryInput">
      An ad hoc Max Metric.

      <Expandable title="MaxMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="measure" type="DimensionInput" required>
          The column to calculate the maximum from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="countDistinct" type="CountDistinctMetricQueryInput">
      An ad hoc Count Distinct Metric.

      <Expandable title="CountDistinctMetricQueryInput">
        <ParamField path="dataPool" type="DataPoolInput" required>
          The Data Pool to which this Metric belongs.

          See <a href="/docs/management-api/inputs#datapoolinput">DataPoolInput</a>
        </ParamField>

        <ParamField path="dimension" type="DimensionInput" required>
          The column to count distinct values from.

          See <a href="/docs/management-api/inputs#dimensioninput">DimensionInput</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeRange" type="TimeRangeInput">
  The time range for calculating the leaderboard.

  <Expandable title="TimeRangeInput">
    The fields required to specify the time range for a time series, counter, or leaderboard Metric query.

    If no relative or absolute time ranges are provided, Propel defaults to an absolute time range beginning with the earliest record in the Metric's Data Pool and ending with the latest record.

    If both relative and absolute time ranges are provided, the relative time range will take precedence.

    If a `LAST_N` relative time period is selected, an `n` ≥ 1 must be provided. If no `n` is provided or `n` \< 1, a `BAD_REQUEST` error will be returned.

    <ParamField path="timestamp" type="String">
      The timestamp field to use when querying. Defaults to the timestamp configured on the Data Pool or Metric, if any.
      Set this to filter on an alternative timestamp field.
    </ParamField>

    <ParamField path="relative" type="RelativeTimeRange">
      The relative time period.

      <Expandable title="RelativeTimeRange">
        The Relative time ranges are based on the current date and time.

        `THIS` - The current unit of time. For example, if today is June 8, 2022, and
        `THIS_MONTH` is selected, then data for June 2022 would be returned.

        `PREVIOUS` - The previous unit of time. For example, if today is June 8, 2022, and
        `PREVIOUS_MONTH` is selected, then data for May 2022 would be returned. It excludes
        the current unit of time.

        `NEXT` - The next unit of time. For example, if today is June 8, 2022, and
        `NEXT_MONTH` is selected, then data for July 2022 would be returned. It excludes
        the current unit of time.

        `LAST_N` - The last `n` units of time, including the current one. For example, if today
        is June 8, 2022 and `LAST_N_YEARS` with `n` = 3 is selected, then data for 2020, 2021, and
        2022 will be returned. It will include the current time period.

        <ParamField path=" ">
          * `THIS_HOUR`: Starts at the zeroth minute of the current hour and continues for 60 minutes.
          * `TODAY`: Starts at 12:00:00 AM of the current day and continues for 24 hours.
          * `THIS_WEEK`: Starts on Monday, 12:00:00 AM of the current week and continues for seven days.
          * `THIS_MONTH`: Starts at 12:00:00 AM on the first day of the current month and continues for the duration of the month.
          * `THIS_QUARTER`: Starts at 12:00:00 AM on the first day of the current calendar quarter and continues for the duration of the quarter.
          * `THIS_YEAR`: Starts on January 1st, 12:00:00 AM of the current year and continues for the duration of the year.
          * `PREVIOUS_HOUR`: Starts at the zeroth minute of the previous hour and continues for 60 minutes.
          * `YESTERDAY`: Starts at 12:00:00 AM on the day before the today and continues for 24 hours.
          * `PREVIOUS_WEEK`: Starts on Monday, 12:00:00 AM, a week before the current week, and continues for seven days.
          * `PREVIOUS_MONTH`: Starts at 12:00:00 AM on the first day of the month before the current month and continues for the duration of the month.
          * `PREVIOUS_QUARTER`: Starts at 12:00:00 AM on the first day of the calendar quarter before the current quarter and continues for the duration of the quarter.
          * `PREVIOUS_YEAR`: Starts on January 1st, 12:00:00 AM, the year before the current year, and continues for the duration of the year.
          * `NEXT_HOUR`:  Starts at the zeroth minute of the next hour and continues for 60 minutes.
          * `TOMORROW`: " Starts at 12:00:00 AM, the day after the current day, and continues for 24 hours.
          * `NEXT_WEEK`: Starts on Monday, 12:00:00 AM, the week after the current week, and continues for the duration of the week.
          * `NEXT_MONTH`: Starts at 12:00:00 AM on the first day of the next month and continues for the duration of the month.
          * `NEXT_QUARTER`: Starts at 12:00:00 AM on the first day of the next calendar quarter and continues for the duration of the quarter.
          * `NEXT_YEAR`: Starts on January 1st, 12:00:00 AM of the next year and continues for the duration of the year.
          * `LAST_N_MINUTES`: Starts at the zeroth second `n` - 1 minute(s) before the current minute and continues through the current minute. It includes this minute.
          * `LAST_N_HOURS`: Starts at the zeroth minute of the `n` - 1 hour(s) before the current hour, and continues through the current hour. It includes this hour.
          * `LAST_N_DAYS`: Starts at 12:00:00 AM, `n` - 1 day(s) before the current day, and continues through the current day. It includes today.
          * `LAST_N_WEEKS`: Starts on Monday, 12:00:00 AM, `n` - 1 week(s) before the current week, and continues through the current week. It includes this week.
          * `LAST_N_MONTHS`: Starts at 12:00:00 AM on the first day of the month, `n` - 1 month(s) before the current month, and continues through the current month. It includes this month.
          * `LAST_N_QUARTERS`: Starts at 12:00:00 AM on the first day of the calendar quarter `n` - 1 quarter(s) before the current quarter and continues through the current quarter. It includes this quarter.
          * `LAST_N_YEARS`: Starts on January 1st, 12:00:00 AM of the year `n` - 1 year(s) before the current year and continues through the current year. It includes this year.
          * `LAST_15_MINUTES`
          * `LAST_30_MINUTES`
          * `LAST_HOUR`
          * `LAST_4_HOURS`
          * `LAST_12_HOURS`
          * `LAST_24_HOURS`
          * `LAST_7_DAYS`
          * `LAST_30_DAYS`
          * `LAST_90_DAYS`
          * `LAST_3_MONTHS`
          * `LAST_6_MONTHS`
          * `LAST_YEAR`
          * `LAST_2_YEARS`
          * `LAST_5_YEARS`
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="n" type="Int">
      The number of time units for the `LAST_N` relative periods.
    </ParamField>

    <ParamField path="start" type="DateTime">
      The optional start timestamp (inclusive). Defaults to the timestamp of the earliest record in the Data Pool.
    </ParamField>

    <ParamField path="stop" type="DateTime">
      The optional end timestamp (exclusive). Defaults to the timestamp of the latest record in the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeZone" type="String">
  The time zone to use. Dates and times are always returned in UTC, but setting the time zone influences relative time ranges and granularities.

  You can set this to "America/Los\_Angeles", "Europe/Berlin", or any other value in the [IANA time zone database](https://en.wikipedia.org/wiki/Tz_database). Defaults to "UTC".
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]" required>
  One or many Dimensions to group the Metric values by. Typically, Dimensions in a leaderboard are what you want to compare and rank.

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="sort" type="Sort">
  The sort order of the rows. It can be ascending (`ASC`) or descending (`DESC`) order. Defaults to descending (`DESC`) order when not provided.

  <Expandable title="Sort">
    The available sort orders.

    <ParamField path=" ">
      * `ASC`: Sort in ascending order.
      * `DESC`: Sort in descending order.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="rowLimit" type="Int" required>
  The number of rows to be returned. It can be a number between 1 and 1,000.
</ParamField>

<ParamField path="filterSql" type="String">
  The Query Filters to apply before retrieving the leaderboard data, in the form of SQL. If no Query Filters are provided, all data is included.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="metricId" type="ID" deprecated>
    The ID of the Metric to query.

    Required if `metricName` is not specified.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
  </ParamField>

  <ParamField path="metricName" type="String" deprecated>
    The name of the Metric to query.

    Required if `metricId` is not specified.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `metric`</span>
  </ParamField>

  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The Query Filters to apply before retrieving the leaderboard data. If no Query Filters are provided, all data is included.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## TimeRangeInput

The fields required to specify the time range for a time series, counter, or leaderboard Metric query.

If no relative or absolute time ranges are provided, Propel defaults to an absolute time range beginning with the earliest record in the Metric's Data Pool and ending with the latest record.

If both relative and absolute time ranges are provided, the relative time range will take precedence.

If a `LAST_N` relative time period is selected, an `n` ≥ 1 must be provided. If no `n` is provided or `n` \< 1, a `BAD_REQUEST` error will be returned.

<ParamField path="timestamp" type="String">
  The timestamp field to use when querying. Defaults to the timestamp configured on the Data Pool or Metric, if any.
  Set this to filter on an alternative timestamp field.
</ParamField>

<ParamField path="relative" type="RelativeTimeRange">
  The relative time period.

  <Expandable title="RelativeTimeRange">
    The Relative time ranges are based on the current date and time.

    `THIS` - The current unit of time. For example, if today is June 8, 2022, and
    `THIS_MONTH` is selected, then data for June 2022 would be returned.

    `PREVIOUS` - The previous unit of time. For example, if today is June 8, 2022, and
    `PREVIOUS_MONTH` is selected, then data for May 2022 would be returned. It excludes
    the current unit of time.

    `NEXT` - The next unit of time. For example, if today is June 8, 2022, and
    `NEXT_MONTH` is selected, then data for July 2022 would be returned. It excludes
    the current unit of time.

    `LAST_N` - The last `n` units of time, including the current one. For example, if today
    is June 8, 2022 and `LAST_N_YEARS` with `n` = 3 is selected, then data for 2020, 2021, and
    2022 will be returned. It will include the current time period.

    <ParamField path=" ">
      * `THIS_HOUR`: Starts at the zeroth minute of the current hour and continues for 60 minutes.
      * `TODAY`: Starts at 12:00:00 AM of the current day and continues for 24 hours.
      * `THIS_WEEK`: Starts on Monday, 12:00:00 AM of the current week and continues for seven days.
      * `THIS_MONTH`: Starts at 12:00:00 AM on the first day of the current month and continues for the duration of the month.
      * `THIS_QUARTER`: Starts at 12:00:00 AM on the first day of the current calendar quarter and continues for the duration of the quarter.
      * `THIS_YEAR`: Starts on January 1st, 12:00:00 AM of the current year and continues for the duration of the year.
      * `PREVIOUS_HOUR`: Starts at the zeroth minute of the previous hour and continues for 60 minutes.
      * `YESTERDAY`: Starts at 12:00:00 AM on the day before the today and continues for 24 hours.
      * `PREVIOUS_WEEK`: Starts on Monday, 12:00:00 AM, a week before the current week, and continues for seven days.
      * `PREVIOUS_MONTH`: Starts at 12:00:00 AM on the first day of the month before the current month and continues for the duration of the month.
      * `PREVIOUS_QUARTER`: Starts at 12:00:00 AM on the first day of the calendar quarter before the current quarter and continues for the duration of the quarter.
      * `PREVIOUS_YEAR`: Starts on January 1st, 12:00:00 AM, the year before the current year, and continues for the duration of the year.
      * `NEXT_HOUR`:  Starts at the zeroth minute of the next hour and continues for 60 minutes.
      * `TOMORROW`: " Starts at 12:00:00 AM, the day after the current day, and continues for 24 hours.
      * `NEXT_WEEK`: Starts on Monday, 12:00:00 AM, the week after the current week, and continues for the duration of the week.
      * `NEXT_MONTH`: Starts at 12:00:00 AM on the first day of the next month and continues for the duration of the month.
      * `NEXT_QUARTER`: Starts at 12:00:00 AM on the first day of the next calendar quarter and continues for the duration of the quarter.
      * `NEXT_YEAR`: Starts on January 1st, 12:00:00 AM of the next year and continues for the duration of the year.
      * `LAST_N_MINUTES`: Starts at the zeroth second `n` - 1 minute(s) before the current minute and continues through the current minute. It includes this minute.
      * `LAST_N_HOURS`: Starts at the zeroth minute of the `n` - 1 hour(s) before the current hour, and continues through the current hour. It includes this hour.
      * `LAST_N_DAYS`: Starts at 12:00:00 AM, `n` - 1 day(s) before the current day, and continues through the current day. It includes today.
      * `LAST_N_WEEKS`: Starts on Monday, 12:00:00 AM, `n` - 1 week(s) before the current week, and continues through the current week. It includes this week.
      * `LAST_N_MONTHS`: Starts at 12:00:00 AM on the first day of the month, `n` - 1 month(s) before the current month, and continues through the current month. It includes this month.
      * `LAST_N_QUARTERS`: Starts at 12:00:00 AM on the first day of the calendar quarter `n` - 1 quarter(s) before the current quarter and continues through the current quarter. It includes this quarter.
      * `LAST_N_YEARS`: Starts on January 1st, 12:00:00 AM of the year `n` - 1 year(s) before the current year and continues through the current year. It includes this year.
      * `LAST_15_MINUTES`
      * `LAST_30_MINUTES`
      * `LAST_HOUR`
      * `LAST_4_HOURS`
      * `LAST_12_HOURS`
      * `LAST_24_HOURS`
      * `LAST_7_DAYS`
      * `LAST_30_DAYS`
      * `LAST_90_DAYS`
      * `LAST_3_MONTHS`
      * `LAST_6_MONTHS`
      * `LAST_YEAR`
      * `LAST_2_YEARS`
      * `LAST_5_YEARS`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="n" type="Int">
  The number of time units for the `LAST_N` relative periods.
</ParamField>

<ParamField path="start" type="DateTime">
  The optional start timestamp (inclusive). Defaults to the timestamp of the earliest record in the Data Pool.
</ParamField>

<ParamField path="stop" type="DateTime">
  The optional end timestamp (exclusive). Defaults to the timestamp of the latest record in the Data Pool.
</ParamField>

## FilterInput

The fields of a filter.

You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

```
(value > 0 AND value <= 100) OR status = "confirmed"
```

you could write

```
{
  "column": "value",
  "operator": "GREATER_THAN",
  "value": "0",
  "and": [{
    "column": "value",
    "operator": "LESS_THAN_OR_EQUAL_TO",
    "value": "0"
  }],
  "or": [{
    "column": "status",
    "operator": "EQUALS",
    "value": "confirmed"
  }]
}
```

Note that `and` takes precedence over `or`.

<ParamField path="column" type="String" required>
  The name of the column to filter on.
</ParamField>

<ParamField path="operator" type="FilterOperator" required>
  The operation to perform when comparing the column and filter values.

  <Expandable title="FilterOperator">
    The available Filter operators.

    <ParamField path=" ">
      * `EQUALS`:  Selects values that are equal to the specified value.
      * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
      * `GREATER_THAN`:  Selects values that are greater than the specified value.
      * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
      * `LESS_THAN`:  Selects values that are less than the specified value.
      * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
      * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
      * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
      * `LIKE`:  Selects values that match the specified pattern.
      * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="value" type="String">
  The value to compare the column to.
</ParamField>

<ParamField path="and" type="[FilterInput!]">
  Additional filters to AND with this one. AND takes precedence over OR.
</ParamField>

<ParamField path="or" type="[FilterInput!]">
  Additional filters to OR with this one. AND takes precedence over OR.
</ParamField>

## UpdateDataPoolRecordsJobSetColumnInput

The fields for creating an Update Data Pool Records Job.

```
{
"column": "status",
"expression": "'completed'"
}

{
"column": "counter",
"expression": "counter + 1"
}

{
"column": "full_name",
"expression": "concat(first_name, ' ', last_name)"
}
```

<ParamField path="column" type="String" required>
  The name of the column to update.
</ParamField>

<ParamField path="expression" type="String" required>
  The value to which the column will be updated. Once evaluated, it should be of the same data type as the column.
</ParamField>

## CreateBoosterInput

The fields for creating a new Booster.

Boosters can be understood as an aggregating index. The index is formed from left to right as follows:

1. The Data Pool's Tenant ID column (if present)
2. Metric Filter columns (if present)
3. Query Filter Dimensions (see `dimensions`)
4. The Data Pool's timestamp column

<ParamField path="metric" type="ID" required>
  The Booster's Metric.
</ParamField>

<ParamField path="dimensions" type="[DimensionInput!]" required>
  Dimensions to include in the Booster.

  Follow these guidelines when specifying Dimensions:

  1. Specify Dimensions in descending order of importance for filtering and in ascending order of cardinality.
  2. Take into consideration hierarchical relationships as well (for example, a "country" Dimension should appear before a "state" Dimension).

  <Expandable title="DimensionInput">
    The fields for creating or modifying a Dimension.

    <ParamField path="columnName" type="String" required>
      The name of the column to create the Dimension from.
    </ParamField>
  </Expandable>
</ParamField>

## CreatePolicyInput

The fields for creating a Policy.

<ParamField path="metric" type="ID" required>
  The Metric to which the Policy will be applied.
</ParamField>

<ParamField path="type" type="PolicyType" required>
  The type of Policy to create.

  <Expandable title="PolicyType">
    The types of Policies that can be applied to a Metric.

    <ParamField path=" ">
      * `ALL_ACCESS`: Grants access to all Metric data.
      * `TENANT_ACCESS`: Grants access to a specified tenant's Metric data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="application" type="ID" required>
  The Application that will be granted access to the Metric.
</ParamField>

## ModifyPolicyInput

The fields for modifying a Policy.

<ParamField path="policy" type="ID" required>
  The Policy's unique identifier.
</ParamField>

<ParamField path="type" type="PolicyType" required>
  The type of Policy.

  <Expandable title="PolicyType">
    The types of Policies that can be applied to a Metric.

    <ParamField path=" ">
      * `ALL_ACCESS`: Grants access to all Metric data.
      * `TENANT_ACCESS`: Grants access to a specified tenant's Metric data.
    </ParamField>
  </Expandable>
</ParamField>

## DeletionRequestInput

The fields for creating a Deletion Job.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that is going to get the data deleted
</ParamField>

<ParamField path="filterSql" type="String">
  The filters that will be used for deleting data, in the form of SQL. Data matching these filters will be deleted.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The list of filters that will be used for deleting data. Data matching these filters will be deleted.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateDeletionJobInput

The fields for creating a Deletion Job.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that is going to get the data deleted
</ParamField>

<ParamField path="filterSql" type="String">
  The filters that will be used for deleting data, in the form of SQL. Data matching these filters will be deleted.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The list of filters that will be used for deleting data. Data matching these filters will be deleted.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateAddColumnToDataPoolJobInput

The fields for creating an Add Column Job.

<ParamField path="dataPool" type="ID" required>
  The Data Pool to which the column will be added.
</ParamField>

<ParamField path="columnName" type="String" required>
  Name of the new column.
</ParamField>

<ParamField path="columnType" type="ColumnType" required>
  Type of the new column.

  <Expandable title="ColumnType">
    The Propel data types.

    <ParamField path=" ">
      * `BOOLEAN`: True or false.
      * `STRING`: A variable-length string.
      * `FLOAT`: A 32-bit signed double-precision floating point number.
      * `DOUBLE`: A 64-bit signed double-precision floating point number.
      * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
      * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
      * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
      * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
      * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
      * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
      * `JSON`: A JavaScript Object Notation (JSON) document.
      * `CLICKHOUSE`: A ClickHouse-specific type.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="columnClickHouseType" type="String">
  The ClickHouse type of the new column when `columnType` is set to `CLICKHOUSE`.
</ParamField>

<ParamField path="jsonProperty" type="String">
  JSON property to which the new column corresponds.
</ParamField>

## CreateUpdateDataPoolRecordsJobInput

The fields for creating an Update Data Pool Records Job.

<ParamField path="dataPool" type="ID" required>
  The Data Pool that is going to get its records updated.
</ParamField>

<ParamField path="filterSql" type="String">
  The filters that will be used for updating records, in the form of SQL. Records matching these filters will be updated.
</ParamField>

<ParamField path="set" type="[UpdateDataPoolRecordsJobSetColumnInput!]" required>
  Describes how the job will update the records.

  <Expandable title="UpdateDataPoolRecordsJobSetColumnInput">
    The fields for creating an Update Data Pool Records Job.

    ```
    {
    "column": "status",
    "expression": "'completed'"
    }

    {
    "column": "counter",
    "expression": "counter + 1"
    }

    {
    "column": "full_name",
    "expression": "concat(first_name, ' ', last_name)"
    }
    ```

    <ParamField path="column" type="String" required>
      The name of the column to update.
    </ParamField>

    <ParamField path="expression" type="String" required>
      The value to which the column will be updated. Once evaluated, it should be of the same data type as the column.
    </ParamField>
  </Expandable>
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="filters" type="[FilterInput!]" deprecated>
    The list of filters that will be used for updating records. Records matching these filters will be updated.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## CreateDataPoolAccessPolicyInput

<ParamField path="uniqueName" type="String">
  The Data Pool Access Policy's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

<ParamField path="description" type="String">
  The Data Pool Access Policy's description.
</ParamField>

<ParamField path="dataPool" type="ID" required>
  The Data Pool to which the Access Policy belongs.
</ParamField>

<ParamField path="columns" type="[String!]" required>
  Columns that the Access Policy makes available for querying.

  If set to `["*"]`, all columns will be available for querying.
</ParamField>

<ParamField path="filterSql" type="String">
  Row-level filters that the Access Policy applies before executing queries, in the form of SQL.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="rows" type="[FilterInput!]" deprecated>
    Row-level filters that the Access Policy applies before executing queries.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## ModifyDataPoolAccessPolicyInput

<ParamField path="id" type="ID" required />

<ParamField path="uniqueName" type="String">
  The Data Pool Access Policy's new unique name.
</ParamField>

<ParamField path="description" type="String">
  The Data Pool Access Policy's new description.
</ParamField>

<ParamField path="columns" type="[String!]">
  Columns that the Access Policy makes available for querying. If not provided this property will not be modified.
</ParamField>

<ParamField path="filterSql" type="String">
  Row-level filters that the Access Policy applies before executing queries, in the form of SQL. If not provided this property will not be modified.
</ParamField>

<Expandable title="Deprecated Fields">
  <ParamField path="rows" type="[FilterInput!]" deprecated>
    Row-level filters that the Access Policy applies before executing queries. If not provided this property will not be modified.

    <span style={{ fontStyle: 'italic' }}>deprecated: Use `filterSql` instead</span>

    <Expandable title="FilterInput">
      The fields of a filter.

      You can construct more complex filters using `and` and `or`. For example, to construct a filter equivalent to

      ```
      (value > 0 AND value <= 100) OR status = "confirmed"
      ```

      you could write

      ```
      {
        "column": "value",
        "operator": "GREATER_THAN",
        "value": "0",
        "and": [{
          "column": "value",
          "operator": "LESS_THAN_OR_EQUAL_TO",
          "value": "0"
        }],
        "or": [{
          "column": "status",
          "operator": "EQUALS",
          "value": "confirmed"
        }]
      }
      ```

      Note that `and` takes precedence over `or`.

      <ParamField path="column" type="String" required>
        The name of the column to filter on.
      </ParamField>

      <ParamField path="operator" type="FilterOperator" required>
        The operation to perform when comparing the column and filter values.

        <Expandable title="FilterOperator">
          The available Filter operators.

          <ParamField path=" ">
            * `EQUALS`:  Selects values that are equal to the specified value.
            * `NOT_EQUALS`:  Selects values that are not equal to the specified value.
            * `GREATER_THAN`:  Selects values that are greater than the specified value.
            * `GREATER_THAN_OR_EQUAL_TO`:  Selects values that are greater or equal to the specified value.
            * `LESS_THAN`:  Selects values that are less than the specified value.
            * `LESS_THAN_OR_EQUAL_TO`:  Selects values that are less or equal to the specified value.
            * `IS_NULL`:  Selects values that are null. This operator does not accept a value.
            * `IS_NOT_NULL`:  Selects values that are not null. This operator does not accept a value.
            * `LIKE`:  Selects values that match the specified pattern.
            * `NOT_LIKE`:  "Selects values that do not match the specified pattern.
          </ParamField>
        </Expandable>
      </ParamField>

      <ParamField path="value" type="String">
        The value to compare the column to.
      </ParamField>

      <ParamField path="and" type="[FilterInput!]">
        Additional filters to AND with this one. AND takes precedence over OR.
      </ParamField>

      <ParamField path="or" type="[FilterInput!]">
        Additional filters to OR with this one. AND takes precedence over OR.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

## SqlV1Input

Input to the SqlV1 api.

<ParamField path="query" type="String" required>
  The SQL query.
</ParamField>

<ParamField path="dialect" type="SqlDialectV1">
  The SQL dialect to use. If not provided, the query is parsed on a best-effort basis.

  <Expandable title="SqlDialectV1">
    The SQL dialect to use when parsing queries.

    <ParamField path=" ">
      * `POSTGRESQL`: Parse as PostgreSQL-compatible SQL.
      * `CLICKHOUSE`: Parse as ClickHouse-compatible SQL.
    </ParamField>
  </Expandable>
</ParamField>

## DescribeSqlV1Input

Input for describing SqlV1 inputs.

<ParamField path="query" type="String" required>
  The SQL query.
</ParamField>

<ParamField path="dialect" type="SqlDialectV1">
  The SQL dialect to use. If not provided, the query is parsed on a best-effort basis.

  <Expandable title="SqlDialectV1">
    The SQL dialect to use when parsing queries.

    <ParamField path=" ">
      * `POSTGRESQL`: Parse as PostgreSQL-compatible SQL.
      * `CLICKHOUSE`: Parse as ClickHouse-compatible SQL.
    </ParamField>
  </Expandable>
</ParamField>

## RecordsByUniqueIdInput

The fields for querying records by unique ID.

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to be queried. A Data Pool ID or unique name can be provided.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="columns" type="[String!]" required>
  The columns to retrieve.
</ParamField>

<ParamField path="uniqueIds" type="[String!]" required>
  The unique IDs of the records to retrieve.
</ParamField>

## TopValuesInput

The fields for querying the top values in a given column.

<ParamField path="dataPool" type="DataPoolInput" required>
  The Data Pool to be queried. A Data Pool ID or unique name can be provided.

  <Expandable title="DataPoolInput">
    <ParamField path="id" type="ID">
      The ID of the Data Pool.
    </ParamField>

    <ParamField path="name" type="String">
      The name of the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="columnName" type="String" required>
  The column to fetch the unique values from.
</ParamField>

<ParamField path="timeRange" type="TimeRangeInput">
  The time range for calculating the top values.

  <Expandable title="TimeRangeInput">
    The fields required to specify the time range for a time series, counter, or leaderboard Metric query.

    If no relative or absolute time ranges are provided, Propel defaults to an absolute time range beginning with the earliest record in the Metric's Data Pool and ending with the latest record.

    If both relative and absolute time ranges are provided, the relative time range will take precedence.

    If a `LAST_N` relative time period is selected, an `n` ≥ 1 must be provided. If no `n` is provided or `n` \< 1, a `BAD_REQUEST` error will be returned.

    <ParamField path="timestamp" type="String">
      The timestamp field to use when querying. Defaults to the timestamp configured on the Data Pool or Metric, if any.
      Set this to filter on an alternative timestamp field.
    </ParamField>

    <ParamField path="relative" type="RelativeTimeRange">
      The relative time period.

      <Expandable title="RelativeTimeRange">
        The Relative time ranges are based on the current date and time.

        `THIS` - The current unit of time. For example, if today is June 8, 2022, and
        `THIS_MONTH` is selected, then data for June 2022 would be returned.

        `PREVIOUS` - The previous unit of time. For example, if today is June 8, 2022, and
        `PREVIOUS_MONTH` is selected, then data for May 2022 would be returned. It excludes
        the current unit of time.

        `NEXT` - The next unit of time. For example, if today is June 8, 2022, and
        `NEXT_MONTH` is selected, then data for July 2022 would be returned. It excludes
        the current unit of time.

        `LAST_N` - The last `n` units of time, including the current one. For example, if today
        is June 8, 2022 and `LAST_N_YEARS` with `n` = 3 is selected, then data for 2020, 2021, and
        2022 will be returned. It will include the current time period.

        <ParamField path=" ">
          * `THIS_HOUR`: Starts at the zeroth minute of the current hour and continues for 60 minutes.
          * `TODAY`: Starts at 12:00:00 AM of the current day and continues for 24 hours.
          * `THIS_WEEK`: Starts on Monday, 12:00:00 AM of the current week and continues for seven days.
          * `THIS_MONTH`: Starts at 12:00:00 AM on the first day of the current month and continues for the duration of the month.
          * `THIS_QUARTER`: Starts at 12:00:00 AM on the first day of the current calendar quarter and continues for the duration of the quarter.
          * `THIS_YEAR`: Starts on January 1st, 12:00:00 AM of the current year and continues for the duration of the year.
          * `PREVIOUS_HOUR`: Starts at the zeroth minute of the previous hour and continues for 60 minutes.
          * `YESTERDAY`: Starts at 12:00:00 AM on the day before the today and continues for 24 hours.
          * `PREVIOUS_WEEK`: Starts on Monday, 12:00:00 AM, a week before the current week, and continues for seven days.
          * `PREVIOUS_MONTH`: Starts at 12:00:00 AM on the first day of the month before the current month and continues for the duration of the month.
          * `PREVIOUS_QUARTER`: Starts at 12:00:00 AM on the first day of the calendar quarter before the current quarter and continues for the duration of the quarter.
          * `PREVIOUS_YEAR`: Starts on January 1st, 12:00:00 AM, the year before the current year, and continues for the duration of the year.
          * `NEXT_HOUR`:  Starts at the zeroth minute of the next hour and continues for 60 minutes.
          * `TOMORROW`: " Starts at 12:00:00 AM, the day after the current day, and continues for 24 hours.
          * `NEXT_WEEK`: Starts on Monday, 12:00:00 AM, the week after the current week, and continues for the duration of the week.
          * `NEXT_MONTH`: Starts at 12:00:00 AM on the first day of the next month and continues for the duration of the month.
          * `NEXT_QUARTER`: Starts at 12:00:00 AM on the first day of the next calendar quarter and continues for the duration of the quarter.
          * `NEXT_YEAR`: Starts on January 1st, 12:00:00 AM of the next year and continues for the duration of the year.
          * `LAST_N_MINUTES`: Starts at the zeroth second `n` - 1 minute(s) before the current minute and continues through the current minute. It includes this minute.
          * `LAST_N_HOURS`: Starts at the zeroth minute of the `n` - 1 hour(s) before the current hour, and continues through the current hour. It includes this hour.
          * `LAST_N_DAYS`: Starts at 12:00:00 AM, `n` - 1 day(s) before the current day, and continues through the current day. It includes today.
          * `LAST_N_WEEKS`: Starts on Monday, 12:00:00 AM, `n` - 1 week(s) before the current week, and continues through the current week. It includes this week.
          * `LAST_N_MONTHS`: Starts at 12:00:00 AM on the first day of the month, `n` - 1 month(s) before the current month, and continues through the current month. It includes this month.
          * `LAST_N_QUARTERS`: Starts at 12:00:00 AM on the first day of the calendar quarter `n` - 1 quarter(s) before the current quarter and continues through the current quarter. It includes this quarter.
          * `LAST_N_YEARS`: Starts on January 1st, 12:00:00 AM of the year `n` - 1 year(s) before the current year and continues through the current year. It includes this year.
          * `LAST_15_MINUTES`
          * `LAST_30_MINUTES`
          * `LAST_HOUR`
          * `LAST_4_HOURS`
          * `LAST_12_HOURS`
          * `LAST_24_HOURS`
          * `LAST_7_DAYS`
          * `LAST_30_DAYS`
          * `LAST_90_DAYS`
          * `LAST_3_MONTHS`
          * `LAST_6_MONTHS`
          * `LAST_YEAR`
          * `LAST_2_YEARS`
          * `LAST_5_YEARS`
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="n" type="Int">
      The number of time units for the `LAST_N` relative periods.
    </ParamField>

    <ParamField path="start" type="DateTime">
      The optional start timestamp (inclusive). Defaults to the timestamp of the earliest record in the Data Pool.
    </ParamField>

    <ParamField path="stop" type="DateTime">
      The optional end timestamp (exclusive). Defaults to the timestamp of the latest record in the Data Pool.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timeZone" type="String">
  The time zone to use. Dates and times are always returned in UTC, but setting the time zone influences relative time ranges and granularities.

  You can set this to "America/Los\_Angeles", "Europe/Berlin", or any other value in the [IANA time zone database](https://en.wikipedia.org/wiki/Tz_database). Defaults to "UTC".
</ParamField>

<ParamField path="maxValues" type="Int">
  The maximum number of values to return. It can be a number between 1 and 1,000. If the parameter is omitted, default value 10 is used.
</ParamField>

## AmazonDataFirehoseConnectionSettingsInput

The Amazon Data Firehose Data Source's connection settings.

<ParamField path="accessControlEnabled" type="Boolean">
  Enables or disables access control for the Data Pool.
  If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.
</ParamField>

<ParamField path="basicAuth" type="HttpBasicAuthInput" required>
  HTTP basic access authentication credentials. You must configure these same credentials to be included in the
  `X-Amz-Firehose-Access-Key` header when Amazon Data Firehose issues requests to its custom HTTP endpoint.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="columns" type="[AmazonDataFirehoseDataSourceColumnInput!]">
  Additional columns for the table in Propel.

  <Expandable title="AmazonDataFirehoseDataSourceColumnInput">
    The fields for specifying a column in an Amazon Data Firehose Data Source's table.

    <ParamField path="name" type="String" required>
      The column name. It has to be unique within a table.
    </ParamField>

    <ParamField path="jsonProperty" type="String" required>
      The JSON property that the column will be derived from. For example, if you send a JSON event like this:

      ```json theme={"system"}
      { "greeting": { "message": "hello, world" } }
      ```

      Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
    </ParamField>

    <ParamField path="type" type="ColumnType" required>
      The column type.

      <Expandable title="ColumnType">
        The Propel data types.

        <ParamField path=" ">
          * `BOOLEAN`: True or false.
          * `STRING`: A variable-length string.
          * `FLOAT`: A 32-bit signed double-precision floating point number.
          * `DOUBLE`: A 64-bit signed double-precision floating point number.
          * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
          * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
          * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
          * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
          * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
          * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
          * `JSON`: A JavaScript Object Notation (JSON) document.
          * `CLICKHOUSE`: A ClickHouse-specific type.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="nullable" type="Boolean" required>
      Whether the column's type is nullable or not.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="tableSettings" type="TableSettingsInput">
  Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
  default will be chosen based on the Data Pool's `timestamp` value, if any. You can override these
  defaults in order to specify a custom table engine, custom ORDER BY, etc.

  <Expandable title="TableSettingsInput">
    A Data Pool's table settings.

    These describe how the Data Pool's table is created in ClickHouse.

    <ParamField path="engine" type="TableEngineInput">
      The ClickHouse table engine for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

      <Expandable title="TableEngineInput">
        A Data Pool's table engine.

        <ParamField path="mergeTree" type="MergeTreeTableEngineInput">
          Field for specifying the MergeTree table engine.

          See <a href="/docs/management-api/inputs#mergetreetableengineinput">MergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="replacingMergeTree" type="ReplacingMergeTreeTableEngineInput">
          Field for specifying the ReplacingMergeTree table engine.

          See <a href="/docs/management-api/inputs#replacingmergetreetableengineinput">ReplacingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="summingMergeTree" type="SummingMergeTreeTableEngineInput">
          Field for specifying the SummingMergeTree table engine.

          See <a href="/docs/management-api/inputs#summingmergetreetableengineinput">SummingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="aggregatingMergeTree" type="AggregatingMergeTreeTableEngineInput">
          Field for specifying the AggregatingMergeTree table engine.

          See <a href="/docs/management-api/inputs#aggregatingmergetreetableengineinput">AggregatingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="postgreSql" type="PostgreSqlTableEngineInput">
          Field for specifying the PostgreSQL table engine.

          See <a href="/docs/management-api/inputs#postgresqltableengineinput">PostgreSqlTableEngineInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="partitionBy" type="[String!]">
      The PARTITION BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="primaryKey" type="[String!]">
      The PRIMARY KEY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="orderBy" type="[String!]">
      The ORDER BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="ttl" type="String">
      The TTL clause for the Data Pool's table.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timestamp" type="String">
  The primary timestamp column, if any.
</ParamField>

## CreateAmazonDataFirehoseDataSourceInput

<ParamField path="connectionSettings" type="AmazonDataFirehoseConnectionSettingsInput" required>
  The Amazon Data Firehose Data Source's connection settings

  <Expandable title="AmazonDataFirehoseConnectionSettingsInput">
    The Amazon Data Firehose Data Source's connection settings.

    <ParamField path="accessControlEnabled" type="Boolean">
      Enables or disables access control for the Data Pool.
      If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.
    </ParamField>

    <ParamField path="basicAuth" type="HttpBasicAuthInput" required>
      HTTP basic access authentication credentials. You must configure these same credentials to be included in the
      `X-Amz-Firehose-Access-Key` header when Amazon Data Firehose issues requests to its custom HTTP endpoint.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="columns" type="[AmazonDataFirehoseDataSourceColumnInput!]">
      Additional columns for the table in Propel.

      <Expandable title="AmazonDataFirehoseDataSourceColumnInput">
        The fields for specifying a column in an Amazon Data Firehose Data Source's table.

        <ParamField path="name" type="String" required>
          The column name. It has to be unique within a table.
        </ParamField>

        <ParamField path="jsonProperty" type="String" required>
          The JSON property that the column will be derived from. For example, if you send a JSON event like this:

          ```json theme={"system"}
          { "greeting": { "message": "hello, world" } }
          ```

          Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
        </ParamField>

        <ParamField path="type" type="ColumnType" required>
          The column type.

          See <a href="/docs/management-api/enums#columntype">ColumnType</a>
        </ParamField>

        <ParamField path="nullable" type="Boolean" required>
          Whether the column's type is nullable or not.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="tableSettings" type="TableSettingsInput">
      Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
      default will be chosen based on the Data Pool's `timestamp` value, if any. You can override these
      defaults in order to specify a custom table engine, custom ORDER BY, etc.

      <Expandable title="TableSettingsInput">
        A Data Pool's table settings.

        These describe how the Data Pool's table is created in ClickHouse.

        <ParamField path="engine" type="TableEngineInput">
          The ClickHouse table engine for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

          See <a href="/docs/management-api/inputs#tableengineinput">TableEngineInput</a>
        </ParamField>

        <ParamField path="partitionBy" type="[String!]">
          The PARTITION BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="primaryKey" type="[String!]">
          The PRIMARY KEY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="orderBy" type="[String!]">
          The ORDER BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="ttl" type="String">
          The TTL clause for the Data Pool's table.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="timestamp" type="String">
      The primary timestamp column, if any.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Amazon Data Firehose Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Amazon Data Firehose Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## ModifyAmazonDataFirehoseDataSourceInput

<ParamField path="connectionSettings" type="PartialAmazonDataFirehoseConnectionSettingsInput">
  The Amazon Data Firehose Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialAmazonDataFirehoseConnectionSettingsInput">
    The Amazon Data Firehose Data Source's connection settings.

    <ParamField path="basicAuth" type="HttpBasicAuthInput">
      HTTP basic access authentication credentials. You must configure these same credentials to be included in the
      `X-Amz-Firehose-Access-Key` header when Amazon Data Firehose issues requests to its custom HTTP endpoint. If not provided this property will not be modified.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Amazon Data Firehose Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Amazon Data Firehose Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Amazon Data Firehose Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialAmazonDataFirehoseConnectionSettingsInput

The Amazon Data Firehose Data Source's connection settings.

<ParamField path="basicAuth" type="HttpBasicAuthInput">
  HTTP basic access authentication credentials. You must configure these same credentials to be included in the
  `X-Amz-Firehose-Access-Key` header when Amazon Data Firehose issues requests to its custom HTTP endpoint. If not provided this property will not be modified.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

## AmazonDynamoDBConnectionSettingsInput

The Amazon DynamoDB Data Source's connection settings.

<ParamField path="accessControlEnabled" type="Boolean">
  Enables or disables access control for the Data Pool.
  If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.
</ParamField>

<ParamField path="basicAuth" type="HttpBasicAuthInput" required>
  HTTP basic access authentication credentials. You must configure these same credentials to be included in the
  `X-Amz-Firehose-Access-Key` header when Amazon Data Firehose transmits records from your DynamoDB table to its
  custom HTTP endpoint.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="columns" type="[AmazonDynamoDBDataSourceColumnInput!]">
  Additional columns for the table in Propel.

  <Expandable title="AmazonDynamoDBDataSourceColumnInput">
    The fields for specifying a column in an Amazon DynamODB Data Source's table.

    <ParamField path="name" type="String" required>
      The column name. It has to be unique within a table.
    </ParamField>

    <ParamField path="jsonProperty" type="String" required>
      The JSON property that the column will be derived from. For example, if you send a JSON event like this:

      ```json theme={"system"}
      { "greeting": { "message": "hello, world" } }
      ```

      Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
    </ParamField>

    <ParamField path="type" type="ColumnType" required>
      The column type.

      <Expandable title="ColumnType">
        The Propel data types.

        <ParamField path=" ">
          * `BOOLEAN`: True or false.
          * `STRING`: A variable-length string.
          * `FLOAT`: A 32-bit signed double-precision floating point number.
          * `DOUBLE`: A 64-bit signed double-precision floating point number.
          * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
          * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
          * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
          * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
          * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
          * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
          * `JSON`: A JavaScript Object Notation (JSON) document.
          * `CLICKHOUSE`: A ClickHouse-specific type.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="nullable" type="Boolean" required>
      Whether the column's type is nullable or not.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="tableSettings" type="TableSettingsInput">
  Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
  default will be chosen based on the Data Pool's `timestamp` value, if any. You can override these
  defaults in order to specify a custom table engine, custom ORDER BY, etc.

  <Expandable title="TableSettingsInput">
    A Data Pool's table settings.

    These describe how the Data Pool's table is created in ClickHouse.

    <ParamField path="engine" type="TableEngineInput">
      The ClickHouse table engine for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

      <Expandable title="TableEngineInput">
        A Data Pool's table engine.

        <ParamField path="mergeTree" type="MergeTreeTableEngineInput">
          Field for specifying the MergeTree table engine.

          See <a href="/docs/management-api/inputs#mergetreetableengineinput">MergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="replacingMergeTree" type="ReplacingMergeTreeTableEngineInput">
          Field for specifying the ReplacingMergeTree table engine.

          See <a href="/docs/management-api/inputs#replacingmergetreetableengineinput">ReplacingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="summingMergeTree" type="SummingMergeTreeTableEngineInput">
          Field for specifying the SummingMergeTree table engine.

          See <a href="/docs/management-api/inputs#summingmergetreetableengineinput">SummingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="aggregatingMergeTree" type="AggregatingMergeTreeTableEngineInput">
          Field for specifying the AggregatingMergeTree table engine.

          See <a href="/docs/management-api/inputs#aggregatingmergetreetableengineinput">AggregatingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="postgreSql" type="PostgreSqlTableEngineInput">
          Field for specifying the PostgreSQL table engine.

          See <a href="/docs/management-api/inputs#postgresqltableengineinput">PostgreSqlTableEngineInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="partitionBy" type="[String!]">
      The PARTITION BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="primaryKey" type="[String!]">
      The PRIMARY KEY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="orderBy" type="[String!]">
      The ORDER BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="ttl" type="String">
      The TTL clause for the Data Pool's table.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timestamp" type="String">
  The primary timestamp column, if any.
</ParamField>

## CreateAmazonDynamoDBDataSourceInput

<ParamField path="connectionSettings" type="AmazonDynamoDBConnectionSettingsInput" required>
  The Amazon DynamoDB Data Source's connection settings

  <Expandable title="AmazonDynamoDBConnectionSettingsInput">
    The Amazon DynamoDB Data Source's connection settings.

    <ParamField path="accessControlEnabled" type="Boolean">
      Enables or disables access control for the Data Pool.
      If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.
    </ParamField>

    <ParamField path="basicAuth" type="HttpBasicAuthInput" required>
      HTTP basic access authentication credentials. You must configure these same credentials to be included in the
      `X-Amz-Firehose-Access-Key` header when Amazon Data Firehose transmits records from your DynamoDB table to its
      custom HTTP endpoint.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="columns" type="[AmazonDynamoDBDataSourceColumnInput!]">
      Additional columns for the table in Propel.

      <Expandable title="AmazonDynamoDBDataSourceColumnInput">
        The fields for specifying a column in an Amazon DynamODB Data Source's table.

        <ParamField path="name" type="String" required>
          The column name. It has to be unique within a table.
        </ParamField>

        <ParamField path="jsonProperty" type="String" required>
          The JSON property that the column will be derived from. For example, if you send a JSON event like this:

          ```json theme={"system"}
          { "greeting": { "message": "hello, world" } }
          ```

          Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
        </ParamField>

        <ParamField path="type" type="ColumnType" required>
          The column type.

          See <a href="/docs/management-api/enums#columntype">ColumnType</a>
        </ParamField>

        <ParamField path="nullable" type="Boolean" required>
          Whether the column's type is nullable or not.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="tableSettings" type="TableSettingsInput">
      Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
      default will be chosen based on the Data Pool's `timestamp` value, if any. You can override these
      defaults in order to specify a custom table engine, custom ORDER BY, etc.

      <Expandable title="TableSettingsInput">
        A Data Pool's table settings.

        These describe how the Data Pool's table is created in ClickHouse.

        <ParamField path="engine" type="TableEngineInput">
          The ClickHouse table engine for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

          See <a href="/docs/management-api/inputs#tableengineinput">TableEngineInput</a>
        </ParamField>

        <ParamField path="partitionBy" type="[String!]">
          The PARTITION BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="primaryKey" type="[String!]">
          The PRIMARY KEY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="orderBy" type="[String!]">
          The ORDER BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="ttl" type="String">
          The TTL clause for the Data Pool's table.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="timestamp" type="String">
      The primary timestamp column, if any.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Amazon DynamoDB Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Amazon DynamoDB Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## ModifyAmazonDynamoDBDataSourceInput

<ParamField path="connectionSettings" type="PartialAmazonDynamoDBConnectionSettingsInput">
  The Amazon DynamoDB Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialAmazonDynamoDBConnectionSettingsInput">
    The Amazon DynamoDB Data Source's connection settings.

    <ParamField path="basicAuth" type="HttpBasicAuthInput">
      HTTP basic access authentication credentials. You must configure these same credentials to be included in the
      `X-Amz-Firehose-Access-Key` header when Amazon Data Firehose transmits records from your DynamoDB table to its
      custom HTTP endpoint. If not provided this property will not be modified.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Amazon DynamoDB Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Amazon DynamoDB Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Amazon DynamoDB Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialAmazonDynamoDBConnectionSettingsInput

The Amazon DynamoDB Data Source's connection settings.

<ParamField path="basicAuth" type="HttpBasicAuthInput">
  HTTP basic access authentication credentials. You must configure these same credentials to be included in the
  `X-Amz-Firehose-Access-Key` header when Amazon Data Firehose transmits records from your DynamoDB table to its
  custom HTTP endpoint. If not provided this property will not be modified.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

## ClickHouseConnectionSettingsInput

The ClickHouse Data Source connection settings.

<ParamField path="database" type="String" required>
  Which database to connect to
</ParamField>

<ParamField path="password" type="String" required>
  The password for the provided user
</ParamField>

<ParamField path="url" type="String" required>
  The URL where the ClickHouse host is listening to HTTP\[S] connections
</ParamField>

<ParamField path="user" type="String" required>
  The user for authenticating against the ClickHouse host
</ParamField>

## CreateClickHouseDataSourceInput

<ParamField path="connectionSettings" type="ClickHouseConnectionSettingsInput" required>
  The ClickHouse Data Source's connection settings

  <Expandable title="ClickHouseConnectionSettingsInput">
    The ClickHouse Data Source connection settings.

    <ParamField path="database" type="String" required>
      Which database to connect to
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for the provided user
    </ParamField>

    <ParamField path="url" type="String" required>
      The URL where the ClickHouse host is listening to HTTP\[S] connections
    </ParamField>

    <ParamField path="user" type="String" required>
      The user for authenticating against the ClickHouse host
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The ClickHouse Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The ClickHouse Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## ModifyClickHouseDataSourceInput

<ParamField path="connectionSettings" type="PartialClickHouseConnectionSettingsInput">
  The ClickHouse Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialClickHouseConnectionSettingsInput">
    The ClickHouse Data Source connection settings.

    <ParamField path="database" type="String">
      Which database to connect to If not provided this property will not be modified.
    </ParamField>

    <ParamField path="password" type="String">
      The password for the provided user If not provided this property will not be modified.
    </ParamField>

    <ParamField path="url" type="String">
      The URL where the ClickHouse host is listening to HTTP\[S] connections If not provided this property will not be modified.
    </ParamField>

    <ParamField path="user" type="String">
      The user for authenticating against the ClickHouse host If not provided this property will not be modified.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The ClickHouse Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the ClickHouse Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The ClickHouse Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialClickHouseConnectionSettingsInput

The ClickHouse Data Source connection settings.

<ParamField path="database" type="String">
  Which database to connect to If not provided this property will not be modified.
</ParamField>

<ParamField path="password" type="String">
  The password for the provided user If not provided this property will not be modified.
</ParamField>

<ParamField path="url" type="String">
  The URL where the ClickHouse host is listening to HTTP\[S] connections If not provided this property will not be modified.
</ParamField>

<ParamField path="user" type="String">
  The user for authenticating against the ClickHouse host If not provided this property will not be modified.
</ParamField>

## CreateHttpDataSourceInput

<ParamField path="connectionSettings" type="HttpConnectionSettingsInput" required>
  The HTTP Data Source's connection settings

  <Expandable title="HttpConnectionSettingsInput">
    The HTTP Data Source connection settings.

    <ParamField path="basicAuth" type="HttpBasicAuthInput">
      The HTTP Basic authentication settings for uploading new data.

      If this parameter is not provided, anyone with the URL to your tables will be able to upload data. While it's OK to test without HTTP Basic authentication, we recommend enabling it.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="tables" type="[HttpDataSourceTableInput!]" required>
      The HTTP Data Source's tables.

      <Expandable title="HttpDataSourceTableInput">
        The fields for specifying an HTTP Data Source's table.

        <ParamField path="name" type="String" required>
          The name of the table
        </ParamField>

        <ParamField path="columns" type="[HttpDataSourceColumnInput!]" required>
          All the columns present in the table

          See <a href="/docs/management-api/inputs#httpdatasourcecolumninput">HttpDataSourceColumnInput</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The HTTP Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The HTTP Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## HttpConnectionSettingsInput

The HTTP Data Source connection settings.

<ParamField path="basicAuth" type="HttpBasicAuthInput">
  The HTTP Basic authentication settings for uploading new data.

  If this parameter is not provided, anyone with the URL to your tables will be able to upload data. While it's OK to test without HTTP Basic authentication, we recommend enabling it.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="tables" type="[HttpDataSourceTableInput!]" required>
  The HTTP Data Source's tables.

  <Expandable title="HttpDataSourceTableInput">
    The fields for specifying an HTTP Data Source's table.

    <ParamField path="name" type="String" required>
      The name of the table
    </ParamField>

    <ParamField path="columns" type="[HttpDataSourceColumnInput!]" required>
      All the columns present in the table

      <Expandable title="HttpDataSourceColumnInput">
        The fields for specifying a column in an HTTP Data Source's table.

        <ParamField path="name" type="String" required>
          The column name. It has to be unique within a table.
        </ParamField>

        <ParamField path="type" type="ColumnType" required>
          The column type.

          See <a href="/docs/management-api/enums#columntype">ColumnType</a>
        </ParamField>

        <ParamField path="clickHouseType" type="String">
          The ClickHouse type to use when `type` is set to `CLICKHOUSE`.
        </ParamField>

        <ParamField path="nullable" type="Boolean" required>
          Whether the column's type is nullable or not.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## ModifyHttpDataSourceInput

<ParamField path="connectionSettings" type="PartialHttpConnectionSettingsInput">
  The HTTP Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialHttpConnectionSettingsInput">
    The HTTP Data Source connection settings.

    <ParamField path="basicAuth" type="HttpBasicAuthInput">
      The HTTP Basic authentication settings for uploading new data.

      If this parameter is not provided, anyone with the URL to your tables will be able to upload data. While it's OK to test without HTTP Basic authentication, we recommend enabling it. If not provided this property will not be modified.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="basicAuthEnabled" type="Boolean">
      Set this to `false` to disable HTTP Basic authentication. Any previously stored HTTP Basic authentication settings will be cleared out. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="tables" type="[HttpDataSourceTableInput!]">
      The HTTP Data Source's tables. If not provided this property will not be modified.

      <Expandable title="HttpDataSourceTableInput">
        The fields for specifying an HTTP Data Source's table.

        <ParamField path="name" type="String" required>
          The name of the table
        </ParamField>

        <ParamField path="columns" type="[HttpDataSourceColumnInput!]" required>
          All the columns present in the table

          See <a href="/docs/management-api/inputs#httpdatasourcecolumninput">HttpDataSourceColumnInput</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The HTTP Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the HTTP Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The HTTP Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialHttpConnectionSettingsInput

The HTTP Data Source connection settings.

<ParamField path="basicAuth" type="HttpBasicAuthInput">
  The HTTP Basic authentication settings for uploading new data.

  If this parameter is not provided, anyone with the URL to your tables will be able to upload data. While it's OK to test without HTTP Basic authentication, we recommend enabling it. If not provided this property will not be modified.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="basicAuthEnabled" type="Boolean">
  Set this to `false` to disable HTTP Basic authentication. Any previously stored HTTP Basic authentication settings will be cleared out. If not provided this property will not be modified.
</ParamField>

<ParamField path="tables" type="[HttpDataSourceTableInput!]">
  The HTTP Data Source's tables. If not provided this property will not be modified.

  <Expandable title="HttpDataSourceTableInput">
    The fields for specifying an HTTP Data Source's table.

    <ParamField path="name" type="String" required>
      The name of the table
    </ParamField>

    <ParamField path="columns" type="[HttpDataSourceColumnInput!]" required>
      All the columns present in the table

      <Expandable title="HttpDataSourceColumnInput">
        The fields for specifying a column in an HTTP Data Source's table.

        <ParamField path="name" type="String" required>
          The column name. It has to be unique within a table.
        </ParamField>

        <ParamField path="type" type="ColumnType" required>
          The column type.

          See <a href="/docs/management-api/enums#columntype">ColumnType</a>
        </ParamField>

        <ParamField path="clickHouseType" type="String">
          The ClickHouse type to use when `type` is set to `CLICKHOUSE`.
        </ParamField>

        <ParamField path="nullable" type="Boolean" required>
          Whether the column's type is nullable or not.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## CreateKafkaDataSourceInput

<ParamField path="connectionSettings" type="KafkaConnectionSettingsInput" required>
  The Kafka Data Source's connection settings

  <Expandable title="KafkaConnectionSettingsInput">
    The Kafka Data Source connection settings.

    <ParamField path="auth" type="String" required>
      The type of authentication to use. Can be SCRAM-SHA-256, SCRAM-SHA-512, PLAIN or NONE
    </ParamField>

    <ParamField path="bootstrapServers" type="[String!]" required>
      The bootstrap server(s) to connect to
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for the provided user
    </ParamField>

    <ParamField path="tls" type="Boolean">
      Whether the the connection to the Kafka servers is encrypted or not
    </ParamField>

    <ParamField path="user" type="String" required>
      The user for authenticating against the Kafka servers
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Kafka Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Kafka Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## KafkaConnectionSettingsInput

The Kafka Data Source connection settings.

<ParamField path="auth" type="String" required>
  The type of authentication to use. Can be SCRAM-SHA-256, SCRAM-SHA-512, PLAIN or NONE
</ParamField>

<ParamField path="bootstrapServers" type="[String!]" required>
  The bootstrap server(s) to connect to
</ParamField>

<ParamField path="password" type="String" required>
  The password for the provided user
</ParamField>

<ParamField path="tls" type="Boolean">
  Whether the the connection to the Kafka servers is encrypted or not
</ParamField>

<ParamField path="user" type="String" required>
  The user for authenticating against the Kafka servers
</ParamField>

## ModifyKafkaDataSourceInput

<ParamField path="connectionSettings" type="PartialKafkaConnectionSettingsInput">
  The Kafka Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialKafkaConnectionSettingsInput">
    The Kafka Data Source connection settings.

    <ParamField path="auth" type="String">
      The type of authentication to use. Can be SCRAM-SHA-256, SCRAM-SHA-512, PLAIN or NONE If not provided this property will not be modified.
    </ParamField>

    <ParamField path="bootstrapServers" type="[String!]" required>
      The bootstrap server(s) to connect to If not provided this property will not be modified.
    </ParamField>

    <ParamField path="password" type="String">
      The password for the provided user If not provided this property will not be modified.
    </ParamField>

    <ParamField path="tls" type="Boolean">
      Whether the the connection to the Kafka servers is encrypted or not If not provided this property will not be modified.
    </ParamField>

    <ParamField path="user" type="String">
      The user for authenticating against the Kafka servers If not provided this property will not be modified.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Kafka Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Kafka Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Kafka Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialKafkaConnectionSettingsInput

The Kafka Data Source connection settings.

<ParamField path="auth" type="String">
  The type of authentication to use. Can be SCRAM-SHA-256, SCRAM-SHA-512, PLAIN or NONE If not provided this property will not be modified.
</ParamField>

<ParamField path="bootstrapServers" type="[String!]" required>
  The bootstrap server(s) to connect to If not provided this property will not be modified.
</ParamField>

<ParamField path="password" type="String">
  The password for the provided user If not provided this property will not be modified.
</ParamField>

<ParamField path="tls" type="Boolean">
  Whether the the connection to the Kafka servers is encrypted or not If not provided this property will not be modified.
</ParamField>

<ParamField path="user" type="String">
  The user for authenticating against the Kafka servers If not provided this property will not be modified.
</ParamField>

## CreatePostgreSqlDataSourceInput

<ParamField path="connectionSettings" type="PostgreSqlConnectionSettingsInput" required>
  The PostgreSQL Data Source's connection settings

  <Expandable title="PostgreSqlConnectionSettingsInput">
    The PostgreSQL Data Source connection settings.

    <ParamField path="database" type="String">
      Which database to connect to
    </ParamField>

    <ParamField path="host" type="String" required>
      The host where PostgreSQL is listening
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for the provided user
    </ParamField>

    <ParamField path="port" type="Int">
      The port where PostgreSQL is listening (usually 5432)
    </ParamField>

    <ParamField path="schema" type="String">
      Which schema to use
    </ParamField>

    <ParamField path="user" type="String" required>
      The user for authenticating against PostgreSQL
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The PostgreSQL Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The PostgreSQL Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## ModifyPostgreSqlDataSourceInput

<ParamField path="connectionSettings" type="PartialPostgreSqlConnectionSettingsInput">
  The PostgreSQL Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialPostgreSqlConnectionSettingsInput">
    The PostgreSQL Data Source connection settings.

    <ParamField path="database" type="String">
      Which database to connect to If not provided this property will not be modified.
    </ParamField>

    <ParamField path="host" type="String">
      The host where PostgreSQL is listening If not provided this property will not be modified.
    </ParamField>

    <ParamField path="password" type="String">
      The password for the provided user If not provided this property will not be modified.
    </ParamField>

    <ParamField path="port" type="Int">
      The port where PostgreSQL is listening (usually 5432) If not provided this property will not be modified.
    </ParamField>

    <ParamField path="schema" type="String">
      Which schema to use If not provided this property will not be modified.
    </ParamField>

    <ParamField path="user" type="String">
      The user for authenticating against PostgreSQL If not provided this property will not be modified.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The PostgreSQL Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the PostgreSQL Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The PostgreSQL Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialPostgreSqlConnectionSettingsInput

The PostgreSQL Data Source connection settings.

<ParamField path="database" type="String">
  Which database to connect to If not provided this property will not be modified.
</ParamField>

<ParamField path="host" type="String">
  The host where PostgreSQL is listening If not provided this property will not be modified.
</ParamField>

<ParamField path="password" type="String">
  The password for the provided user If not provided this property will not be modified.
</ParamField>

<ParamField path="port" type="Int">
  The port where PostgreSQL is listening (usually 5432) If not provided this property will not be modified.
</ParamField>

<ParamField path="schema" type="String">
  Which schema to use If not provided this property will not be modified.
</ParamField>

<ParamField path="user" type="String">
  The user for authenticating against PostgreSQL If not provided this property will not be modified.
</ParamField>

## PostgreSqlConnectionSettingsInput

The PostgreSQL Data Source connection settings.

<ParamField path="database" type="String">
  Which database to connect to
</ParamField>

<ParamField path="host" type="String" required>
  The host where PostgreSQL is listening
</ParamField>

<ParamField path="password" type="String" required>
  The password for the provided user
</ParamField>

<ParamField path="port" type="Int">
  The port where PostgreSQL is listening (usually 5432)
</ParamField>

<ParamField path="schema" type="String">
  Which schema to use
</ParamField>

<ParamField path="user" type="String" required>
  The user for authenticating against PostgreSQL
</ParamField>

## CreateS3DataSourceInput

<ParamField path="connectionSettings" type="S3ConnectionSettingsInput" required>
  The Amazon S3 Data Source's connection settings

  <Expandable title="S3ConnectionSettingsInput">
    The connection settings for an Amazon S3 Data Source. These include the Amazon S3 bucket name, the AWS access key ID, and the tables (along with their paths). We do not allow fetching the AWS secret access key after it has been set.

    <ParamField path="awsAccessKeyId" type="String" required>
      The AWS access key ID for an IAM user with sufficient access to the Amazon S3 bucket.
    </ParamField>

    <ParamField path="awsSecretAccessKey" type="String" required>
      The AWS secret access key for an IAM user with sufficient access to the Amazon S3 bucket.
    </ParamField>

    <ParamField path="bucket" type="String" required>
      The name of the Amazon S3 bucket.
    </ParamField>

    <ParamField path="tables" type="[S3DataSourceTableInput!]" required>
      The Amazon S3 Data Source's tables.

      <Expandable title="S3DataSourceTableInput">
        The fields for specifying an Amazon S3 Data Source's table.

        <ParamField path="name" type="String" required>
          The name of the table
        </ParamField>

        <ParamField path="path" type="String">
          The path to the table's files in Amazon S3.
        </ParamField>

        <ParamField path="columns" type="[S3DataSourceColumnInput!]" required>
          All the columns present in the table

          See <a href="/docs/management-api/inputs#s3datasourcecolumninput">S3DataSourceColumnInput</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Amazon S3 Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Amazon S3 Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## ModifyS3DataSourceInput

<ParamField path="connectionSettings" type="PartialS3ConnectionSettingsInput">
  The Amazon S3 Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialS3ConnectionSettingsInput">
    The connection settings for an Amazon S3 Data Source. These include the Amazon S3 bucket name, the AWS access key ID, and the tables (along with their paths). We do not allow fetching the AWS secret access key after it has been set.

    <ParamField path="awsAccessKeyId" type="String">
      The AWS access key ID for an IAM user with sufficient access to the Amazon S3 bucket. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="awsSecretAccessKey" type="String">
      The AWS secret access key for an IAM user with sufficient access to the Amazon S3 bucket. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="bucket" type="String">
      The name of the Amazon S3 bucket. If not provided this property will not be modified.
    </ParamField>

    <ParamField path="tables" type="[S3DataSourceTableInput!]">
      The Amazon S3 Data Source's tables. If not provided this property will not be modified.

      <Expandable title="S3DataSourceTableInput">
        The fields for specifying an Amazon S3 Data Source's table.

        <ParamField path="name" type="String" required>
          The name of the table
        </ParamField>

        <ParamField path="path" type="String">
          The path to the table's files in Amazon S3.
        </ParamField>

        <ParamField path="columns" type="[S3DataSourceColumnInput!]" required>
          All the columns present in the table

          See <a href="/docs/management-api/inputs#s3datasourcecolumninput">S3DataSourceColumnInput</a>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Amazon S3 Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Amazon S3 Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Amazon S3 Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialS3ConnectionSettingsInput

The connection settings for an Amazon S3 Data Source. These include the Amazon S3 bucket name, the AWS access key ID, and the tables (along with their paths). We do not allow fetching the AWS secret access key after it has been set.

<ParamField path="awsAccessKeyId" type="String">
  The AWS access key ID for an IAM user with sufficient access to the Amazon S3 bucket. If not provided this property will not be modified.
</ParamField>

<ParamField path="awsSecretAccessKey" type="String">
  The AWS secret access key for an IAM user with sufficient access to the Amazon S3 bucket. If not provided this property will not be modified.
</ParamField>

<ParamField path="bucket" type="String">
  The name of the Amazon S3 bucket. If not provided this property will not be modified.
</ParamField>

<ParamField path="tables" type="[S3DataSourceTableInput!]">
  The Amazon S3 Data Source's tables. If not provided this property will not be modified.

  <Expandable title="S3DataSourceTableInput">
    The fields for specifying an Amazon S3 Data Source's table.

    <ParamField path="name" type="String" required>
      The name of the table
    </ParamField>

    <ParamField path="path" type="String">
      The path to the table's files in Amazon S3.
    </ParamField>

    <ParamField path="columns" type="[S3DataSourceColumnInput!]" required>
      All the columns present in the table

      <Expandable title="S3DataSourceColumnInput">
        The fields for specifying a column in an Amazon S3 Data Source's table.

        <ParamField path="name" type="String" required>
          The column name. It has to be unique within a table.
        </ParamField>

        <ParamField path="type" type="ColumnType" required>
          The column type.

          See <a href="/docs/management-api/enums#columntype">ColumnType</a>
        </ParamField>

        <ParamField path="nullable" type="Boolean" required>
          Whether the column's type is nullable or not.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## S3ConnectionSettingsInput

The connection settings for an Amazon S3 Data Source. These include the Amazon S3 bucket name, the AWS access key ID, and the tables (along with their paths). We do not allow fetching the AWS secret access key after it has been set.

<ParamField path="awsAccessKeyId" type="String" required>
  The AWS access key ID for an IAM user with sufficient access to the Amazon S3 bucket.
</ParamField>

<ParamField path="awsSecretAccessKey" type="String" required>
  The AWS secret access key for an IAM user with sufficient access to the Amazon S3 bucket.
</ParamField>

<ParamField path="bucket" type="String" required>
  The name of the Amazon S3 bucket.
</ParamField>

<ParamField path="tables" type="[S3DataSourceTableInput!]" required>
  The Amazon S3 Data Source's tables.

  <Expandable title="S3DataSourceTableInput">
    The fields for specifying an Amazon S3 Data Source's table.

    <ParamField path="name" type="String" required>
      The name of the table
    </ParamField>

    <ParamField path="path" type="String">
      The path to the table's files in Amazon S3.
    </ParamField>

    <ParamField path="columns" type="[S3DataSourceColumnInput!]" required>
      All the columns present in the table

      <Expandable title="S3DataSourceColumnInput">
        The fields for specifying a column in an Amazon S3 Data Source's table.

        <ParamField path="name" type="String" required>
          The column name. It has to be unique within a table.
        </ParamField>

        <ParamField path="type" type="ColumnType" required>
          The column type.

          See <a href="/docs/management-api/enums#columntype">ColumnType</a>
        </ParamField>

        <ParamField path="nullable" type="Boolean" required>
          Whether the column's type is nullable or not.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## CreateTwilioSegmentDataSourceInput

<ParamField path="connectionSettings" type="TwilioSegmentConnectionSettingsInput" required>
  The Twilio Segment Data Source's connection settings

  <Expandable title="TwilioSegmentConnectionSettingsInput">
    The Twilio Segment Data Source connection settings.

    <ParamField path="accessControlEnabled" type="Boolean">
      Enables or disables access control for the Data Pool.
      If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.
    </ParamField>

    <ParamField path="basicAuth" type="HttpBasicAuthInput">
      The HTTP basic authentication settings for the Twilio Segment Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it's OK to test without HTTP Basic authentication, we recommend enabling it.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="columns" type="[TwilioSegmentDataSourceColumnInput!]">
      The additional columns for the table in Propel.

      <Expandable title="TwilioSegmentDataSourceColumnInput">
        The fields for specifying a column in a Twilio Segment Data Source's table.

        <ParamField path="name" type="String" required>
          The column name. It has to be unique within a table.
        </ParamField>

        <ParamField path="jsonProperty" type="String" required>
          The JSON property that the column will be derived from. For example, if you POST a JSON event like this:

          ```json theme={"system"}
          { "greeting": { "message": "hello, world" } }
          ```

          Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
        </ParamField>

        <ParamField path="type" type="ColumnType" required>
          The column type.

          See <a href="/docs/management-api/enums#columntype">ColumnType</a>
        </ParamField>

        <ParamField path="nullable" type="Boolean" required>
          Whether the column's type is nullable or not.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="tableSettings" type="TableSettingsInput">
      Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
      default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if any. You can override these
      defaults in order to specify a custom table engine, custom ORDER BY, etc.

      <Expandable title="TableSettingsInput">
        A Data Pool's table settings.

        These describe how the Data Pool's table is created in ClickHouse.

        <ParamField path="engine" type="TableEngineInput">
          The ClickHouse table engine for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

          See <a href="/docs/management-api/inputs#tableengineinput">TableEngineInput</a>
        </ParamField>

        <ParamField path="partitionBy" type="[String!]">
          The PARTITION BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="primaryKey" type="[String!]">
          The PRIMARY KEY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="orderBy" type="[String!]">
          The ORDER BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="ttl" type="String">
          The TTL clause for the Data Pool's table.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="timestamp" type="String">
      The primary timestamp column, if any.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Twilio Segment Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Twilio Segment Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## ModifyTwilioSegmentDataSourceInput

<ParamField path="connectionSettings" type="PartialTwilioSegmentConnectionSettingsInput">
  The Twilio Segment Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialTwilioSegmentConnectionSettingsInput">
    The Twilio Segment Data Source connection settings.

    <ParamField path="basicAuth" type="HttpBasicAuthInput">
      The HTTP basic authentication settings for the Twilio Segment Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it's OK to test without HTTP Basic authentication, we recommend enabling it. If not provided this property will not be modified.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="basicAuthEnabled" type="Boolean">
      Set this to `false` to disable HTTP Basic authentication. Any previously stored HTTP Basic authentication settings will be cleared out. If not provided this property will not be modified.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Twilio Segment Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Twilio Segment Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Twilio Segment Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialTwilioSegmentConnectionSettingsInput

The Twilio Segment Data Source connection settings.

<ParamField path="basicAuth" type="HttpBasicAuthInput">
  The HTTP basic authentication settings for the Twilio Segment Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it's OK to test without HTTP Basic authentication, we recommend enabling it. If not provided this property will not be modified.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="basicAuthEnabled" type="Boolean">
  Set this to `false` to disable HTTP Basic authentication. Any previously stored HTTP Basic authentication settings will be cleared out. If not provided this property will not be modified.
</ParamField>

## TwilioSegmentConnectionSettingsInput

The Twilio Segment Data Source connection settings.

<ParamField path="accessControlEnabled" type="Boolean">
  Enables or disables access control for the Data Pool.
  If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.
</ParamField>

<ParamField path="basicAuth" type="HttpBasicAuthInput">
  The HTTP basic authentication settings for the Twilio Segment Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it's OK to test without HTTP Basic authentication, we recommend enabling it.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="columns" type="[TwilioSegmentDataSourceColumnInput!]">
  The additional columns for the table in Propel.

  <Expandable title="TwilioSegmentDataSourceColumnInput">
    The fields for specifying a column in a Twilio Segment Data Source's table.

    <ParamField path="name" type="String" required>
      The column name. It has to be unique within a table.
    </ParamField>

    <ParamField path="jsonProperty" type="String" required>
      The JSON property that the column will be derived from. For example, if you POST a JSON event like this:

      ```json theme={"system"}
      { "greeting": { "message": "hello, world" } }
      ```

      Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
    </ParamField>

    <ParamField path="type" type="ColumnType" required>
      The column type.

      <Expandable title="ColumnType">
        The Propel data types.

        <ParamField path=" ">
          * `BOOLEAN`: True or false.
          * `STRING`: A variable-length string.
          * `FLOAT`: A 32-bit signed double-precision floating point number.
          * `DOUBLE`: A 64-bit signed double-precision floating point number.
          * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
          * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
          * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
          * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
          * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
          * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
          * `JSON`: A JavaScript Object Notation (JSON) document.
          * `CLICKHOUSE`: A ClickHouse-specific type.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="nullable" type="Boolean" required>
      Whether the column's type is nullable or not.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="tableSettings" type="TableSettingsInput">
  Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
  default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if any. You can override these
  defaults in order to specify a custom table engine, custom ORDER BY, etc.

  <Expandable title="TableSettingsInput">
    A Data Pool's table settings.

    These describe how the Data Pool's table is created in ClickHouse.

    <ParamField path="engine" type="TableEngineInput">
      The ClickHouse table engine for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

      <Expandable title="TableEngineInput">
        A Data Pool's table engine.

        <ParamField path="mergeTree" type="MergeTreeTableEngineInput">
          Field for specifying the MergeTree table engine.

          See <a href="/docs/management-api/inputs#mergetreetableengineinput">MergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="replacingMergeTree" type="ReplacingMergeTreeTableEngineInput">
          Field for specifying the ReplacingMergeTree table engine.

          See <a href="/docs/management-api/inputs#replacingmergetreetableengineinput">ReplacingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="summingMergeTree" type="SummingMergeTreeTableEngineInput">
          Field for specifying the SummingMergeTree table engine.

          See <a href="/docs/management-api/inputs#summingmergetreetableengineinput">SummingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="aggregatingMergeTree" type="AggregatingMergeTreeTableEngineInput">
          Field for specifying the AggregatingMergeTree table engine.

          See <a href="/docs/management-api/inputs#aggregatingmergetreetableengineinput">AggregatingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="postgreSql" type="PostgreSqlTableEngineInput">
          Field for specifying the PostgreSQL table engine.

          See <a href="/docs/management-api/inputs#postgresqltableengineinput">PostgreSqlTableEngineInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="partitionBy" type="[String!]">
      The PARTITION BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="primaryKey" type="[String!]">
      The PRIMARY KEY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="orderBy" type="[String!]">
      The ORDER BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="ttl" type="String">
      The TTL clause for the Data Pool's table.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="timestamp" type="String">
  The primary timestamp column, if any.
</ParamField>

## CreateWebhookDataSourceInput

<ParamField path="connectionSettings" type="WebhookConnectionSettingsInput" required>
  The Webhook Data Source's connection settings

  <Expandable title="WebhookConnectionSettingsInput">
    The Webhook Data Source connection settings.

    <ParamField path="accessControlEnabled" type="Boolean">
      Enables or disables access control for the Data Pool.
      If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.
    </ParamField>

    <ParamField path="basicAuth" type="HttpBasicAuthInput">
      The HTTP basic authentication settings for the Webhook Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it's OK to test without HTTP Basic authentication, we recommend enabling it.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="columns" type="[WebhookDataSourceColumnInput!]">
      The additional columns for the table in Propel.

      <Expandable title="WebhookDataSourceColumnInput">
        The fields for specifying a column in a Webhook Data Source's table.

        <ParamField path="name" type="String" required>
          The column name. It has to be unique within a table.
        </ParamField>

        <ParamField path="jsonProperty" type="String" required>
          The JSON property that the column will be derived from. For example, if you POST a JSON event like this:

          ```json theme={"system"}
          { "greeting": { "message": "hello, world" } }
          ```

          Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
        </ParamField>

        <ParamField path="type" type="ColumnType" required>
          The column type.

          See <a href="/docs/management-api/enums#columntype">ColumnType</a>
        </ParamField>

        <ParamField path="nullable" type="Boolean" required>
          Whether the column's type is nullable or not.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="tableSettings" type="TableSettingsInput">
      Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
      default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if any. You can override these
      defaults in order to specify a custom table engine, custom ORDER BY, etc.

      <Expandable title="TableSettingsInput">
        A Data Pool's table settings.

        These describe how the Data Pool's table is created in ClickHouse.

        <ParamField path="engine" type="TableEngineInput">
          The ClickHouse table engine for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

          See <a href="/docs/management-api/inputs#tableengineinput">TableEngineInput</a>
        </ParamField>

        <ParamField path="partitionBy" type="[String!]">
          The PARTITION BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="primaryKey" type="[String!]">
          The PRIMARY KEY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="orderBy" type="[String!]">
          The ORDER BY clause for the Data Pool's table.

          This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
        </ParamField>

        <ParamField path="ttl" type="String">
          The TTL clause for the Data Pool's table.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="tenant" type="String">
      The tenant ID column, if any.
    </ParamField>

    <ParamField path="timestamp" type="String">
      The primary timestamp column, if any.
    </ParamField>

    <ParamField path="uniqueId" type="String">
      The unique ID column, if any. Propel uses the primary timestamp and a unique ID to compose a primary key for determining whether records should be inserted, deleted, or updated.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Webhook Data Source's description.
</ParamField>

<ParamField path="uniqueName" type="String">
  The Webhook Data Source's unique name. If not specified, Propel will set the ID as unique name.
</ParamField>

## ModifyWebhookDataSourceInput

<ParamField path="connectionSettings" type="PartialWebhookConnectionSettingsInput">
  The Webhook Data Source's new connection settings. If not provided this property will not be modified.

  <Expandable title="PartialWebhookConnectionSettingsInput">
    The Webhook Data Source connection settings.

    <ParamField path="basicAuth" type="HttpBasicAuthInput">
      The HTTP basic authentication settings for the Webhook Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it's OK to test without HTTP Basic authentication, we recommend enabling it. If not provided this property will not be modified.

      <Expandable title="HttpBasicAuthInput">
        The fields for specifying an HTTP Data Source's Basic authentication settings.

        <ParamField path="username" type="String" required>
          The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>

        <ParamField path="password" type="String" required>
          The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="basicAuthEnabled" type="Boolean">
      Set this to `false` to disable HTTP Basic authentication. Any previously stored HTTP Basic authentication settings will be cleared out. If not provided this property will not be modified.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="String">
  The Webhook Data Source's new description. If not provided this property will not be modified.
</ParamField>

<ParamField path="idOrUniqueName" type="idOrUniqueName" required>
  The ID or unique name of the Webhook Data Source to modify.

  <Expandable title="idOrUniqueName">
    The ID or unique name input.

    If both ID and unique name are provided, the ID will take precedence.

    <ParamField path="id" type="String">
      The unique identifier of the object.
    </ParamField>

    <ParamField path="uniqueName" type="String">
      The unique name of the object.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="uniqueName" type="String">
  The Webhook Data Source's new unique name. If not provided this property will not be modified.
</ParamField>

## PartialWebhookConnectionSettingsInput

The Webhook Data Source connection settings.

<ParamField path="basicAuth" type="HttpBasicAuthInput">
  The HTTP basic authentication settings for the Webhook Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it's OK to test without HTTP Basic authentication, we recommend enabling it. If not provided this property will not be modified.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="basicAuthEnabled" type="Boolean">
  Set this to `false` to disable HTTP Basic authentication. Any previously stored HTTP Basic authentication settings will be cleared out. If not provided this property will not be modified.
</ParamField>

## WebhookConnectionSettingsInput

The Webhook Data Source connection settings.

<ParamField path="accessControlEnabled" type="Boolean">
  Enables or disables access control for the Data Pool.
  If the Data Pool has access control enabled, Applications must be assigned Data Pool Access Policies in order to query the Data Pool and its Metrics.
</ParamField>

<ParamField path="basicAuth" type="HttpBasicAuthInput">
  The HTTP basic authentication settings for the Webhook Data Source URL. If this parameter is not provided, anyone with the webhook URL will be able to send events. While it's OK to test without HTTP Basic authentication, we recommend enabling it.

  <Expandable title="HttpBasicAuthInput">
    The fields for specifying an HTTP Data Source's Basic authentication settings.

    <ParamField path="username" type="String" required>
      The username for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>

    <ParamField path="password" type="String" required>
      The password for HTTP Basic authentication that must be included in the Authorization header when uploading new data.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="columns" type="[WebhookDataSourceColumnInput!]">
  The additional columns for the table in Propel.

  <Expandable title="WebhookDataSourceColumnInput">
    The fields for specifying a column in a Webhook Data Source's table.

    <ParamField path="name" type="String" required>
      The column name. It has to be unique within a table.
    </ParamField>

    <ParamField path="jsonProperty" type="String" required>
      The JSON property that the column will be derived from. For example, if you POST a JSON event like this:

      ```json theme={"system"}
      { "greeting": { "message": "hello, world" } }
      ```

      Then you can use the JSON property "greeting.message" to extract "hello, world" to a column.
    </ParamField>

    <ParamField path="type" type="ColumnType" required>
      The column type.

      <Expandable title="ColumnType">
        The Propel data types.

        <ParamField path=" ">
          * `BOOLEAN`: True or false.
          * `STRING`: A variable-length string.
          * `FLOAT`: A 32-bit signed double-precision floating point number.
          * `DOUBLE`: A 64-bit signed double-precision floating point number.
          * `INT8`: An 8-bit signed integer, with a minimum value of -2⁷ and a maximum value of 2⁷-1.
          * `INT16`: A 16-bit signed integer, with a minimum value of -2¹⁵ and a maximum value of 2¹⁵-1.
          * `INT32`: A 32-bit signed integer, with a minimum value of -2³¹ and a maximum value of 2³¹-1.
          * `INT64`: A 64-bit signed integer, with a minimum value of -2⁶³ and a maximum value of 2⁶³-1.
          * `DATE`: A date without a timestamp. For example, "YYYY-MM-DD".
          * `TIMESTAMP`: A date with a timestamp. For example, "yyy-MM-dd HH:mm:ss".
          * `JSON`: A JavaScript Object Notation (JSON) document.
          * `CLICKHOUSE`: A ClickHouse-specific type.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="nullable" type="Boolean" required>
      Whether the column's type is nullable or not.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="tableSettings" type="TableSettingsInput">
  Override the Data Pool's table settings. These describe how the Data Pool's table is created in ClickHouse, and a
  default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if any. You can override these
  defaults in order to specify a custom table engine, custom ORDER BY, etc.

  <Expandable title="TableSettingsInput">
    A Data Pool's table settings.

    These describe how the Data Pool's table is created in ClickHouse.

    <ParamField path="engine" type="TableEngineInput">
      The ClickHouse table engine for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.

      <Expandable title="TableEngineInput">
        A Data Pool's table engine.

        <ParamField path="mergeTree" type="MergeTreeTableEngineInput">
          Field for specifying the MergeTree table engine.

          See <a href="/docs/management-api/inputs#mergetreetableengineinput">MergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="replacingMergeTree" type="ReplacingMergeTreeTableEngineInput">
          Field for specifying the ReplacingMergeTree table engine.

          See <a href="/docs/management-api/inputs#replacingmergetreetableengineinput">ReplacingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="summingMergeTree" type="SummingMergeTreeTableEngineInput">
          Field for specifying the SummingMergeTree table engine.

          See <a href="/docs/management-api/inputs#summingmergetreetableengineinput">SummingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="aggregatingMergeTree" type="AggregatingMergeTreeTableEngineInput">
          Field for specifying the AggregatingMergeTree table engine.

          See <a href="/docs/management-api/inputs#aggregatingmergetreetableengineinput">AggregatingMergeTreeTableEngineInput</a>
        </ParamField>

        <ParamField path="postgreSql" type="PostgreSqlTableEngineInput">
          Field for specifying the PostgreSQL table engine.

          See <a href="/docs/management-api/inputs#postgresqltableengineinput">PostgreSqlTableEngineInput</a>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="partitionBy" type="[String!]">
      The PARTITION BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="primaryKey" type="[String!]">
      The PRIMARY KEY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="orderBy" type="[String!]">
      The ORDER BY clause for the Data Pool's table.

      This field is optional. A default will be chosen based on the Data Pool's `timestamp` and `uniqueId` values, if specified.
    </ParamField>

    <ParamField path="ttl" type="String">
      The TTL clause for the Data Pool's table.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="tenant" type="String">
  The tenant ID column, if any.
</ParamField>

<ParamField path="timestamp" type="String">
  The primary timestamp column, if any.
</ParamField>

<ParamField path="uniqueId" type="String">
  The unique ID column, if any. Propel uses the primary timestamp and a unique ID to compose a primary key for determining whether records should be inserted, deleted, or updated.
</ParamField>
