All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.gcp.bigquery.kotlin.outputs.JobQuery.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.bigquery.kotlin.outputs

import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @property allowLargeResults If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance.
 * Requires destinationTable to be set. For standard SQL queries, this flag is ignored and large results are always allowed.
 * However, you must still set destinationTable when result size exceeds the allowed maximum response size.
 * @property createDisposition Specifies whether the job is allowed to create new tables. The following values are supported:
 * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.
 * CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.
 * Creation, truncation and append actions occur as one atomic update upon job completion
 * Default value is `CREATE_IF_NEEDED`.
 * Possible values are: `CREATE_IF_NEEDED`, `CREATE_NEVER`.
 * @property defaultDataset Specifies the default dataset to use for unqualified table names in the query. Note that this does not alter behavior of unqualified dataset names.
 * Structure is documented below.
 * @property destinationEncryptionConfiguration Custom encryption configuration (e.g., Cloud KMS keys)
 * Structure is documented below.
 * @property destinationTable Describes the table where the query results should be stored.
 * This property must be set for large results that exceed the maximum response size.
 * For queries that produce anonymous (cached) results, this field will be populated by BigQuery.
 * Structure is documented below.
 * @property flattenResults If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results.
 * allowLargeResults must be true if this is set to false. For standard SQL queries, this flag is ignored and results are never flattened.
 * @property maximumBillingTier Limits the billing tier for this job. Queries that have resource usage beyond this tier will fail (without incurring a charge).
 * If unspecified, this will be set to your project default.
 * @property maximumBytesBilled Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge).
 * If unspecified, this will be set to your project default.
 * @property parameterMode Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
 * @property priority Specifies a priority for the query.
 * Default value is `INTERACTIVE`.
 * Possible values are: `INTERACTIVE`, `BATCH`.
 * @property query SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or standard SQL.
 * *NOTE*: queries containing [DML language](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language)
 * (`DELETE`, `UPDATE`, `MERGE`, `INSERT`) must specify `create_disposition = ""` and `write_disposition = ""`.
 * @property schemaUpdateOptions Allows the schema of the destination table to be updated as a side effect of the query job.
 * Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND;
 * when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table,
 * specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema.
 * One or more of the following values are specified:
 * ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema.
 * ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
 * @property scriptOptions Options controlling the execution of scripts.
 * Structure is documented below.
 * @property useLegacySql Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true.
 * If set to false, the query will use BigQuery's standard SQL.
 * @property useQueryCache Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever
 * tables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified.
 * The default value is true.
 * @property userDefinedFunctionResources Describes user-defined function resources used in the query.
 * Structure is documented below.
 * @property writeDisposition Specifies the action that occurs if the destination table already exists. The following values are supported:
 * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.
 * WRITE_APPEND: If the table already exists, BigQuery appends the data to the table.
 * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.
 * Each action is atomic and only occurs if BigQuery is able to complete the job successfully.
 * Creation, truncation and append actions occur as one atomic update upon job completion.
 * Default value is `WRITE_EMPTY`.
 * Possible values are: `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`.
 */
public data class JobQuery(
    public val allowLargeResults: Boolean? = null,
    public val createDisposition: String? = null,
    public val defaultDataset: JobQueryDefaultDataset? = null,
    public val destinationEncryptionConfiguration: JobQueryDestinationEncryptionConfiguration? = null,
    public val destinationTable: JobQueryDestinationTable? = null,
    public val flattenResults: Boolean? = null,
    public val maximumBillingTier: Int? = null,
    public val maximumBytesBilled: String? = null,
    public val parameterMode: String? = null,
    public val priority: String? = null,
    public val query: String,
    public val schemaUpdateOptions: List? = null,
    public val scriptOptions: JobQueryScriptOptions? = null,
    public val useLegacySql: Boolean? = null,
    public val useQueryCache: Boolean? = null,
    public val userDefinedFunctionResources: List? = null,
    public val writeDisposition: String? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.bigquery.outputs.JobQuery): JobQuery = JobQuery(
            allowLargeResults = javaType.allowLargeResults().map({ args0 -> args0 }).orElse(null),
            createDisposition = javaType.createDisposition().map({ args0 -> args0 }).orElse(null),
            defaultDataset = javaType.defaultDataset().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.bigquery.kotlin.outputs.JobQueryDefaultDataset.Companion.toKotlin(args0)
                })
            }).orElse(null),
            destinationEncryptionConfiguration = javaType.destinationEncryptionConfiguration().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.bigquery.kotlin.outputs.JobQueryDestinationEncryptionConfiguration.Companion.toKotlin(args0)
                })
            }).orElse(null),
            destinationTable = javaType.destinationTable().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.bigquery.kotlin.outputs.JobQueryDestinationTable.Companion.toKotlin(args0)
                })
            }).orElse(null),
            flattenResults = javaType.flattenResults().map({ args0 -> args0 }).orElse(null),
            maximumBillingTier = javaType.maximumBillingTier().map({ args0 -> args0 }).orElse(null),
            maximumBytesBilled = javaType.maximumBytesBilled().map({ args0 -> args0 }).orElse(null),
            parameterMode = javaType.parameterMode().map({ args0 -> args0 }).orElse(null),
            priority = javaType.priority().map({ args0 -> args0 }).orElse(null),
            query = javaType.query(),
            schemaUpdateOptions = javaType.schemaUpdateOptions().map({ args0 -> args0 }),
            scriptOptions = javaType.scriptOptions().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.bigquery.kotlin.outputs.JobQueryScriptOptions.Companion.toKotlin(args0)
                })
            }).orElse(null),
            useLegacySql = javaType.useLegacySql().map({ args0 -> args0 }).orElse(null),
            useQueryCache = javaType.useQueryCache().map({ args0 -> args0 }).orElse(null),
            userDefinedFunctionResources = javaType.userDefinedFunctionResources().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.bigquery.kotlin.outputs.JobQueryUserDefinedFunctionResource.Companion.toKotlin(args0)
                })
            }),
            writeDisposition = javaType.writeDisposition().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy