tfplan2cai/converters/google/resources/services/bigquery/bigquery_job.go (1,073 lines of code) (raw):
// ----------------------------------------------------------------------------
//
// *** AUTO GENERATED CODE *** Type: MMv1 ***
//
// ----------------------------------------------------------------------------
//
// This code is generated by Magic Modules using the following:
//
// Configuration: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/products/bigquery/Job.yaml
// Template: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/templates/tgc/resource_converter.go.tmpl
//
// DO NOT EDIT this file directly. Any changes made to this file will be
// overwritten during the next generation cycle.
//
// ----------------------------------------------------------------------------
package bigquery
import (
"fmt"
"reflect"
"regexp"
"github.com/GoogleCloudPlatform/terraform-google-conversion/v6/tfplan2cai/converters/google/resources/cai"
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
)
var (
bigqueryDatasetRegexp = regexp.MustCompile("projects/(.+)/datasets/(.+)")
bigqueryTableRegexp = regexp.MustCompile("projects/(.+)/datasets/(.+)/tables/(.+)")
)
const BigQueryJobAssetType string = "bigquery.googleapis.com/Job"
func ResourceConverterBigQueryJob() cai.ResourceConverter {
return cai.ResourceConverter{
AssetType: BigQueryJobAssetType,
Convert: GetBigQueryJobCaiObject,
}
}
func GetBigQueryJobCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
name, err := cai.AssetName(d, config, "//bigquery.googleapis.com/projects/{{project}}/jobs/{{job_id}}?location={{location}}")
if err != nil {
return []cai.Asset{}, err
}
if obj, err := GetBigQueryJobApiObject(d, config); err == nil {
return []cai.Asset{{
Name: name,
Type: BigQueryJobAssetType,
Resource: &cai.AssetResource{
Version: "v2",
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/bigquery/v2/rest",
DiscoveryName: "Job",
Data: obj,
},
}}, nil
} else {
return []cai.Asset{}, err
}
}
func GetBigQueryJobApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
obj := make(map[string]interface{})
configurationProp, err := expandBigQueryJobConfiguration(nil, d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("configuration"); !tpgresource.IsEmptyValue(reflect.ValueOf(configurationProp)) && (ok || !reflect.DeepEqual(v, configurationProp)) {
obj["configuration"] = configurationProp
}
jobReferenceProp, err := expandBigQueryJobJobReference(nil, d, config)
if err != nil {
return nil, err
} else if v, ok := d.GetOkExists("job_reference"); !tpgresource.IsEmptyValue(reflect.ValueOf(jobReferenceProp)) && (ok || !reflect.DeepEqual(v, jobReferenceProp)) {
obj["jobReference"] = jobReferenceProp
}
return resourceBigQueryJobEncoder(d, config, obj)
}
func resourceBigQueryJobEncoder(d tpgresource.TerraformResourceData, meta interface{}, obj map[string]interface{}) (map[string]interface{}, error) {
project, err := tpgresource.GetProject(d, meta.(*transport_tpg.Config))
if err != nil {
return nil, err
}
obj["jobReference"].(map[string]interface{})["project"] = project
return obj, nil
}
func expandBigQueryJobConfiguration(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
transformed := make(map[string]interface{})
transformedJobType, err := expandBigQueryJobConfigurationJobType(d.Get("job_type"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedJobType); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["jobType"] = transformedJobType
}
transformedJobTimeoutMs, err := expandBigQueryJobConfigurationJobTimeoutMs(d.Get("job_timeout_ms"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedJobTimeoutMs); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["jobTimeoutMs"] = transformedJobTimeoutMs
}
transformedQuery, err := expandBigQueryJobConfigurationQuery(d.Get("query"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedQuery); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["query"] = transformedQuery
}
transformedLoad, err := expandBigQueryJobConfigurationLoad(d.Get("load"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedLoad); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["load"] = transformedLoad
}
transformedCopy, err := expandBigQueryJobConfigurationCopy(d.Get("copy"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedCopy); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["copy"] = transformedCopy
}
transformedExtract, err := expandBigQueryJobConfigurationExtract(d.Get("extract"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedExtract); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["extract"] = transformedExtract
}
transformedEffectiveLabels, err := expandBigQueryJobConfigurationEffectiveLabels(d.Get("effective_labels"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedEffectiveLabels); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["labels"] = transformedEffectiveLabels
}
return transformed, nil
}
func expandBigQueryJobConfigurationJobType(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationJobTimeoutMs(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQuery(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedQuery, err := expandBigQueryJobConfigurationQueryQuery(original["query"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedQuery); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["query"] = transformedQuery
}
transformedDestinationTable, err := expandBigQueryJobConfigurationQueryDestinationTable(original["destination_table"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationTable); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationTable"] = transformedDestinationTable
}
transformedUserDefinedFunctionResources, err := expandBigQueryJobConfigurationQueryUserDefinedFunctionResources(original["user_defined_function_resources"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedUserDefinedFunctionResources); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["userDefinedFunctionResources"] = transformedUserDefinedFunctionResources
}
transformedCreateDisposition, err := expandBigQueryJobConfigurationQueryCreateDisposition(original["create_disposition"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedCreateDisposition); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["createDisposition"] = transformedCreateDisposition
}
transformedWriteDisposition, err := expandBigQueryJobConfigurationQueryWriteDisposition(original["write_disposition"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedWriteDisposition); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["writeDisposition"] = transformedWriteDisposition
}
transformedDefaultDataset, err := expandBigQueryJobConfigurationQueryDefaultDataset(original["default_dataset"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDefaultDataset); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["defaultDataset"] = transformedDefaultDataset
}
transformedPriority, err := expandBigQueryJobConfigurationQueryPriority(original["priority"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedPriority); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["priority"] = transformedPriority
}
transformedAllowLargeResults, err := expandBigQueryJobConfigurationQueryAllowLargeResults(original["allow_large_results"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedAllowLargeResults); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["allowLargeResults"] = transformedAllowLargeResults
}
transformedUseQueryCache, err := expandBigQueryJobConfigurationQueryUseQueryCache(original["use_query_cache"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedUseQueryCache); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["useQueryCache"] = transformedUseQueryCache
}
transformedFlattenResults, err := expandBigQueryJobConfigurationQueryFlattenResults(original["flatten_results"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedFlattenResults); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["flattenResults"] = transformedFlattenResults
}
transformedMaximumBillingTier, err := expandBigQueryJobConfigurationQueryMaximumBillingTier(original["maximum_billing_tier"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedMaximumBillingTier); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["maximumBillingTier"] = transformedMaximumBillingTier
}
transformedMaximumBytesBilled, err := expandBigQueryJobConfigurationQueryMaximumBytesBilled(original["maximum_bytes_billed"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedMaximumBytesBilled); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["maximumBytesBilled"] = transformedMaximumBytesBilled
}
transformedUseLegacySql, err := expandBigQueryJobConfigurationQueryUseLegacySql(original["use_legacy_sql"], d, config)
if err != nil {
return nil, err
} else {
transformed["useLegacySql"] = transformedUseLegacySql
}
transformedParameterMode, err := expandBigQueryJobConfigurationQueryParameterMode(original["parameter_mode"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedParameterMode); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["parameterMode"] = transformedParameterMode
}
transformedSchemaUpdateOptions, err := expandBigQueryJobConfigurationQuerySchemaUpdateOptions(original["schema_update_options"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSchemaUpdateOptions); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["schemaUpdateOptions"] = transformedSchemaUpdateOptions
}
transformedDestinationEncryptionConfiguration, err := expandBigQueryJobConfigurationQueryDestinationEncryptionConfiguration(original["destination_encryption_configuration"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationEncryptionConfiguration); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationEncryptionConfiguration"] = transformedDestinationEncryptionConfiguration
}
transformedScriptOptions, err := expandBigQueryJobConfigurationQueryScriptOptions(original["script_options"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedScriptOptions); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["scriptOptions"] = transformedScriptOptions
}
transformedContinuous, err := expandBigQueryJobConfigurationQueryContinuous(original["continuous"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedContinuous); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["continuous"] = transformedContinuous
}
return transformed, nil
}
func expandBigQueryJobConfigurationQueryQuery(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryDestinationTable(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedProjectId := original["project_id"]
if val := reflect.ValueOf(transformedProjectId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["projectId"] = transformedProjectId
}
transformedDatasetId := original["dataset_id"]
if val := reflect.ValueOf(transformedDatasetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["datasetId"] = transformedDatasetId
}
transformedTableId := original["table_id"]
if val := reflect.ValueOf(transformedTableId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["tableId"] = transformedTableId
}
if parts := bigqueryTableRegexp.FindStringSubmatch(transformedTableId.(string)); parts != nil {
transformed["projectId"] = parts[1]
transformed["datasetId"] = parts[2]
transformed["tableId"] = parts[3]
}
configError := "Invalid BigQuery job destination_table configuration. You must either:\n" +
"1. Set all of project_id, dataset_id, and table_id separately, or\n" +
"2. Provide table_id in the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}'"
// Validate required fields
if projectId, ok := transformed["projectId"]; !ok || projectId == nil ||
reflect.ValueOf(projectId).IsZero() {
return nil, fmt.Errorf("%s\nMissing or empty projectId", configError)
}
if datasetId, ok := transformed["datasetId"]; !ok || datasetId == nil ||
reflect.ValueOf(datasetId).IsZero() {
return nil, fmt.Errorf("%s\nMissing or empty datasetId", configError)
}
return transformed, nil
}
func expandBigQueryJobConfigurationQueryUserDefinedFunctionResources(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
req := make([]interface{}, 0, len(l))
for _, raw := range l {
if raw == nil {
continue
}
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedResourceUri, err := expandBigQueryJobConfigurationQueryUserDefinedFunctionResourcesResourceUri(original["resource_uri"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedResourceUri); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["resourceUri"] = transformedResourceUri
}
transformedInlineCode, err := expandBigQueryJobConfigurationQueryUserDefinedFunctionResourcesInlineCode(original["inline_code"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedInlineCode); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["inlineCode"] = transformedInlineCode
}
req = append(req, transformed)
}
return req, nil
}
func expandBigQueryJobConfigurationQueryUserDefinedFunctionResourcesResourceUri(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryUserDefinedFunctionResourcesInlineCode(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryCreateDisposition(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryWriteDisposition(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryDefaultDataset(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedProjectId := original["project_id"]
if val := reflect.ValueOf(transformedProjectId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["projectId"] = transformedProjectId
}
transformedDatasetId := original["dataset_id"]
if val := reflect.ValueOf(transformedDatasetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["datasetId"] = transformedDatasetId
}
if parts := bigqueryDatasetRegexp.FindStringSubmatch(transformedDatasetId.(string)); parts != nil {
transformed["projectId"] = parts[1]
transformed["datasetId"] = parts[2]
}
return transformed, nil
}
func expandBigQueryJobConfigurationQueryPriority(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryAllowLargeResults(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryUseQueryCache(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryFlattenResults(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryMaximumBillingTier(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryMaximumBytesBilled(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryUseLegacySql(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryParameterMode(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQuerySchemaUpdateOptions(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryDestinationEncryptionConfiguration(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedKmsKeyName, err := expandBigQueryJobConfigurationQueryDestinationEncryptionConfigurationKmsKeyName(original["kms_key_name"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedKmsKeyName); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["kmsKeyName"] = transformedKmsKeyName
}
transformedKmsKeyVersion, err := expandBigQueryJobConfigurationQueryDestinationEncryptionConfigurationKmsKeyVersion(original["kms_key_version"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedKmsKeyVersion); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["kmsKeyVersion"] = transformedKmsKeyVersion
}
return transformed, nil
}
func expandBigQueryJobConfigurationQueryDestinationEncryptionConfigurationKmsKeyName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryDestinationEncryptionConfigurationKmsKeyVersion(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryScriptOptions(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedStatementTimeoutMs, err := expandBigQueryJobConfigurationQueryScriptOptionsStatementTimeoutMs(original["statement_timeout_ms"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedStatementTimeoutMs); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["statementTimeoutMs"] = transformedStatementTimeoutMs
}
transformedStatementByteBudget, err := expandBigQueryJobConfigurationQueryScriptOptionsStatementByteBudget(original["statement_byte_budget"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedStatementByteBudget); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["statementByteBudget"] = transformedStatementByteBudget
}
transformedKeyResultStatement, err := expandBigQueryJobConfigurationQueryScriptOptionsKeyResultStatement(original["key_result_statement"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedKeyResultStatement); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["keyResultStatement"] = transformedKeyResultStatement
}
return transformed, nil
}
func expandBigQueryJobConfigurationQueryScriptOptionsStatementTimeoutMs(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryScriptOptionsStatementByteBudget(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryScriptOptionsKeyResultStatement(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationQueryContinuous(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoad(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedSourceUris, err := expandBigQueryJobConfigurationLoadSourceUris(original["source_uris"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSourceUris); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["sourceUris"] = transformedSourceUris
}
transformedDestinationTable, err := expandBigQueryJobConfigurationLoadDestinationTable(original["destination_table"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationTable); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationTable"] = transformedDestinationTable
}
transformedCreateDisposition, err := expandBigQueryJobConfigurationLoadCreateDisposition(original["create_disposition"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedCreateDisposition); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["createDisposition"] = transformedCreateDisposition
}
transformedWriteDisposition, err := expandBigQueryJobConfigurationLoadWriteDisposition(original["write_disposition"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedWriteDisposition); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["writeDisposition"] = transformedWriteDisposition
}
transformedNullMarker, err := expandBigQueryJobConfigurationLoadNullMarker(original["null_marker"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedNullMarker); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["nullMarker"] = transformedNullMarker
}
transformedFieldDelimiter, err := expandBigQueryJobConfigurationLoadFieldDelimiter(original["field_delimiter"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedFieldDelimiter); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["fieldDelimiter"] = transformedFieldDelimiter
}
transformedSkipLeadingRows, err := expandBigQueryJobConfigurationLoadSkipLeadingRows(original["skip_leading_rows"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSkipLeadingRows); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["skipLeadingRows"] = transformedSkipLeadingRows
}
transformedEncoding, err := expandBigQueryJobConfigurationLoadEncoding(original["encoding"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedEncoding); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["encoding"] = transformedEncoding
}
transformedQuote, err := expandBigQueryJobConfigurationLoadQuote(original["quote"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedQuote); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["quote"] = transformedQuote
}
transformedMaxBadRecords, err := expandBigQueryJobConfigurationLoadMaxBadRecords(original["max_bad_records"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedMaxBadRecords); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["maxBadRecords"] = transformedMaxBadRecords
}
transformedAllowQuotedNewlines, err := expandBigQueryJobConfigurationLoadAllowQuotedNewlines(original["allow_quoted_newlines"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedAllowQuotedNewlines); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["allowQuotedNewlines"] = transformedAllowQuotedNewlines
}
transformedSourceFormat, err := expandBigQueryJobConfigurationLoadSourceFormat(original["source_format"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSourceFormat); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["sourceFormat"] = transformedSourceFormat
}
transformedJsonExtension, err := expandBigQueryJobConfigurationLoadJsonExtension(original["json_extension"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedJsonExtension); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["jsonExtension"] = transformedJsonExtension
}
transformedAllowJaggedRows, err := expandBigQueryJobConfigurationLoadAllowJaggedRows(original["allow_jagged_rows"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedAllowJaggedRows); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["allowJaggedRows"] = transformedAllowJaggedRows
}
transformedIgnoreUnknownValues, err := expandBigQueryJobConfigurationLoadIgnoreUnknownValues(original["ignore_unknown_values"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedIgnoreUnknownValues); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["ignoreUnknownValues"] = transformedIgnoreUnknownValues
}
transformedProjectionFields, err := expandBigQueryJobConfigurationLoadProjectionFields(original["projection_fields"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedProjectionFields); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["projectionFields"] = transformedProjectionFields
}
transformedAutodetect, err := expandBigQueryJobConfigurationLoadAutodetect(original["autodetect"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedAutodetect); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["autodetect"] = transformedAutodetect
}
transformedSchemaUpdateOptions, err := expandBigQueryJobConfigurationLoadSchemaUpdateOptions(original["schema_update_options"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSchemaUpdateOptions); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["schemaUpdateOptions"] = transformedSchemaUpdateOptions
}
transformedTimePartitioning, err := expandBigQueryJobConfigurationLoadTimePartitioning(original["time_partitioning"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedTimePartitioning); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["timePartitioning"] = transformedTimePartitioning
}
transformedDestinationEncryptionConfiguration, err := expandBigQueryJobConfigurationLoadDestinationEncryptionConfiguration(original["destination_encryption_configuration"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationEncryptionConfiguration); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationEncryptionConfiguration"] = transformedDestinationEncryptionConfiguration
}
transformedParquetOptions, err := expandBigQueryJobConfigurationLoadParquetOptions(original["parquet_options"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedParquetOptions); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["parquetOptions"] = transformedParquetOptions
}
return transformed, nil
}
func expandBigQueryJobConfigurationLoadSourceUris(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadDestinationTable(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedProjectId := original["project_id"]
if val := reflect.ValueOf(transformedProjectId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["projectId"] = transformedProjectId
}
transformedDatasetId := original["dataset_id"]
if val := reflect.ValueOf(transformedDatasetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["datasetId"] = transformedDatasetId
}
transformedTableId := original["table_id"]
if val := reflect.ValueOf(transformedTableId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["tableId"] = transformedTableId
}
if parts := bigqueryTableRegexp.FindStringSubmatch(transformedTableId.(string)); parts != nil {
transformed["projectId"] = parts[1]
transformed["datasetId"] = parts[2]
transformed["tableId"] = parts[3]
}
configError := "Invalid BigQuery job destination_table configuration. You must either:\n" +
"1. Set all of project_id, dataset_id, and table_id separately, or\n" +
"2. Provide table_id in the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}'"
// Validate required fields
if projectId, ok := transformed["projectId"]; !ok || projectId == nil ||
reflect.ValueOf(projectId).IsZero() {
return nil, fmt.Errorf("%s\nMissing or empty projectId", configError)
}
if datasetId, ok := transformed["datasetId"]; !ok || datasetId == nil ||
reflect.ValueOf(datasetId).IsZero() {
return nil, fmt.Errorf("%s\nMissing or empty datasetId", configError)
}
return transformed, nil
}
func expandBigQueryJobConfigurationLoadCreateDisposition(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadWriteDisposition(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadNullMarker(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadFieldDelimiter(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadSkipLeadingRows(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadEncoding(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadQuote(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadMaxBadRecords(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadAllowQuotedNewlines(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadSourceFormat(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadJsonExtension(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadAllowJaggedRows(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadIgnoreUnknownValues(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadProjectionFields(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadAutodetect(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadSchemaUpdateOptions(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadTimePartitioning(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedType, err := expandBigQueryJobConfigurationLoadTimePartitioningType(original["type"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedType); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["type"] = transformedType
}
transformedExpirationMs, err := expandBigQueryJobConfigurationLoadTimePartitioningExpirationMs(original["expiration_ms"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedExpirationMs); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["expirationMs"] = transformedExpirationMs
}
transformedField, err := expandBigQueryJobConfigurationLoadTimePartitioningField(original["field"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedField); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["field"] = transformedField
}
return transformed, nil
}
func expandBigQueryJobConfigurationLoadTimePartitioningType(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadTimePartitioningExpirationMs(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadTimePartitioningField(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadDestinationEncryptionConfiguration(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedKmsKeyName, err := expandBigQueryJobConfigurationLoadDestinationEncryptionConfigurationKmsKeyName(original["kms_key_name"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedKmsKeyName); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["kmsKeyName"] = transformedKmsKeyName
}
transformedKmsKeyVersion, err := expandBigQueryJobConfigurationLoadDestinationEncryptionConfigurationKmsKeyVersion(original["kms_key_version"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedKmsKeyVersion); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["kmsKeyVersion"] = transformedKmsKeyVersion
}
return transformed, nil
}
func expandBigQueryJobConfigurationLoadDestinationEncryptionConfigurationKmsKeyName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadDestinationEncryptionConfigurationKmsKeyVersion(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadParquetOptions(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedEnumAsString, err := expandBigQueryJobConfigurationLoadParquetOptionsEnumAsString(original["enum_as_string"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedEnumAsString); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["enumAsString"] = transformedEnumAsString
}
transformedEnableListInference, err := expandBigQueryJobConfigurationLoadParquetOptionsEnableListInference(original["enable_list_inference"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedEnableListInference); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["enableListInference"] = transformedEnableListInference
}
return transformed, nil
}
func expandBigQueryJobConfigurationLoadParquetOptionsEnumAsString(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationLoadParquetOptionsEnableListInference(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationCopy(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedSourceTables, err := expandBigQueryJobConfigurationCopySourceTables(original["source_tables"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSourceTables); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["sourceTables"] = transformedSourceTables
}
transformedDestinationTable, err := expandBigQueryJobConfigurationCopyDestinationTable(original["destination_table"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationTable); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationTable"] = transformedDestinationTable
}
transformedCreateDisposition, err := expandBigQueryJobConfigurationCopyCreateDisposition(original["create_disposition"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedCreateDisposition); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["createDisposition"] = transformedCreateDisposition
}
transformedWriteDisposition, err := expandBigQueryJobConfigurationCopyWriteDisposition(original["write_disposition"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedWriteDisposition); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["writeDisposition"] = transformedWriteDisposition
}
transformedDestinationEncryptionConfiguration, err := expandBigQueryJobConfigurationCopyDestinationEncryptionConfiguration(original["destination_encryption_configuration"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationEncryptionConfiguration); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationEncryptionConfiguration"] = transformedDestinationEncryptionConfiguration
}
return transformed, nil
}
func expandBigQueryJobConfigurationCopySourceTables(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
req := make([]interface{}, 0, len(l))
for _, raw := range l {
if raw == nil {
continue
}
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedProjectId := original["project_id"]
if val := reflect.ValueOf(transformedProjectId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["projectId"] = transformedProjectId
}
transformedDatasetId := original["dataset_id"]
if val := reflect.ValueOf(transformedDatasetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["datasetId"] = transformedDatasetId
}
transformedTableId := original["table_id"]
if val := reflect.ValueOf(transformedTableId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["tableId"] = transformedTableId
}
tableRef := regexp.MustCompile("projects/(.+)/datasets/(.+)/tables/(.+)")
if parts := tableRef.FindStringSubmatch(transformedTableId.(string)); parts != nil {
transformed["projectId"] = parts[1]
transformed["datasetId"] = parts[2]
transformed["tableId"] = parts[3]
}
req = append(req, transformed)
}
return req, nil
}
func expandBigQueryJobConfigurationCopyDestinationTable(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedProjectId := original["project_id"]
if val := reflect.ValueOf(transformedProjectId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["projectId"] = transformedProjectId
}
transformedDatasetId := original["dataset_id"]
if val := reflect.ValueOf(transformedDatasetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["datasetId"] = transformedDatasetId
}
transformedTableId := original["table_id"]
if val := reflect.ValueOf(transformedTableId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["tableId"] = transformedTableId
}
if parts := bigqueryTableRegexp.FindStringSubmatch(transformedTableId.(string)); parts != nil {
transformed["projectId"] = parts[1]
transformed["datasetId"] = parts[2]
transformed["tableId"] = parts[3]
}
configError := "Invalid BigQuery job destination_table configuration. You must either:\n" +
"1. Set all of project_id, dataset_id, and table_id separately, or\n" +
"2. Provide table_id in the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}'"
// Validate required fields
if projectId, ok := transformed["projectId"]; !ok || projectId == nil ||
reflect.ValueOf(projectId).IsZero() {
return nil, fmt.Errorf("%s\nMissing or empty projectId", configError)
}
if datasetId, ok := transformed["datasetId"]; !ok || datasetId == nil ||
reflect.ValueOf(datasetId).IsZero() {
return nil, fmt.Errorf("%s\nMissing or empty datasetId", configError)
}
return transformed, nil
}
func expandBigQueryJobConfigurationCopyCreateDisposition(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationCopyWriteDisposition(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationCopyDestinationEncryptionConfiguration(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedKmsKeyName, err := expandBigQueryJobConfigurationCopyDestinationEncryptionConfigurationKmsKeyName(original["kms_key_name"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedKmsKeyName); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["kmsKeyName"] = transformedKmsKeyName
}
transformedKmsKeyVersion, err := expandBigQueryJobConfigurationCopyDestinationEncryptionConfigurationKmsKeyVersion(original["kms_key_version"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedKmsKeyVersion); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["kmsKeyVersion"] = transformedKmsKeyVersion
}
return transformed, nil
}
func expandBigQueryJobConfigurationCopyDestinationEncryptionConfigurationKmsKeyName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationCopyDestinationEncryptionConfigurationKmsKeyVersion(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtract(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedDestinationUris, err := expandBigQueryJobConfigurationExtractDestinationUris(original["destination_uris"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationUris); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationUris"] = transformedDestinationUris
}
transformedPrintHeader, err := expandBigQueryJobConfigurationExtractPrintHeader(original["print_header"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedPrintHeader); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["printHeader"] = transformedPrintHeader
}
transformedFieldDelimiter, err := expandBigQueryJobConfigurationExtractFieldDelimiter(original["field_delimiter"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedFieldDelimiter); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["fieldDelimiter"] = transformedFieldDelimiter
}
transformedDestinationFormat, err := expandBigQueryJobConfigurationExtractDestinationFormat(original["destination_format"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDestinationFormat); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["destinationFormat"] = transformedDestinationFormat
}
transformedCompression, err := expandBigQueryJobConfigurationExtractCompression(original["compression"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedCompression); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["compression"] = transformedCompression
}
transformedUseAvroLogicalTypes, err := expandBigQueryJobConfigurationExtractUseAvroLogicalTypes(original["use_avro_logical_types"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedUseAvroLogicalTypes); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["useAvroLogicalTypes"] = transformedUseAvroLogicalTypes
}
transformedSourceTable, err := expandBigQueryJobConfigurationExtractSourceTable(original["source_table"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSourceTable); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["sourceTable"] = transformedSourceTable
}
transformedSourceModel, err := expandBigQueryJobConfigurationExtractSourceModel(original["source_model"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedSourceModel); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["sourceModel"] = transformedSourceModel
}
return transformed, nil
}
func expandBigQueryJobConfigurationExtractDestinationUris(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtractPrintHeader(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtractFieldDelimiter(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtractDestinationFormat(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtractCompression(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtractUseAvroLogicalTypes(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtractSourceTable(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedProjectId := original["project_id"]
if val := reflect.ValueOf(transformedProjectId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["projectId"] = transformedProjectId
}
transformedDatasetId := original["dataset_id"]
if val := reflect.ValueOf(transformedDatasetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["datasetId"] = transformedDatasetId
}
transformedTableId := original["table_id"]
if val := reflect.ValueOf(transformedTableId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["tableId"] = transformedTableId
}
if parts := bigqueryTableRegexp.FindStringSubmatch(transformedTableId.(string)); parts != nil {
transformed["projectId"] = parts[1]
transformed["datasetId"] = parts[2]
transformed["tableId"] = parts[3]
}
configError := "Invalid BigQuery job destination_table configuration. You must either:\n" +
"1. Set all of project_id, dataset_id, and table_id separately, or\n" +
"2. Provide table_id in the form 'projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}'"
// Validate required fields
if projectId, ok := transformed["projectId"]; !ok || projectId == nil ||
reflect.ValueOf(projectId).IsZero() {
return nil, fmt.Errorf("%s\nMissing or empty projectId", configError)
}
if datasetId, ok := transformed["datasetId"]; !ok || datasetId == nil ||
reflect.ValueOf(datasetId).IsZero() {
return nil, fmt.Errorf("%s\nMissing or empty datasetId", configError)
}
return transformed, nil
}
func expandBigQueryJobConfigurationExtractSourceModel(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
l := v.([]interface{})
if len(l) == 0 || l[0] == nil {
return nil, nil
}
raw := l[0]
original := raw.(map[string]interface{})
transformed := make(map[string]interface{})
transformedProjectId, err := expandBigQueryJobConfigurationExtractSourceModelProjectId(original["project_id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedProjectId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["projectId"] = transformedProjectId
}
transformedDatasetId, err := expandBigQueryJobConfigurationExtractSourceModelDatasetId(original["dataset_id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedDatasetId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["datasetId"] = transformedDatasetId
}
transformedModelId, err := expandBigQueryJobConfigurationExtractSourceModelModelId(original["model_id"], d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedModelId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["modelId"] = transformedModelId
}
return transformed, nil
}
func expandBigQueryJobConfigurationExtractSourceModelProjectId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtractSourceModelDatasetId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationExtractSourceModelModelId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobConfigurationEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
if v == nil {
return map[string]string{}, nil
}
m := make(map[string]string)
for k, val := range v.(map[string]interface{}) {
m[k] = val.(string)
}
return m, nil
}
func expandBigQueryJobJobReference(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
transformed := make(map[string]interface{})
transformedJobId, err := expandBigQueryJobJobReferenceJobId(d.Get("job_id"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedJobId); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["jobId"] = transformedJobId
}
transformedLocation, err := expandBigQueryJobJobReferenceLocation(d.Get("location"), d, config)
if err != nil {
return nil, err
} else if val := reflect.ValueOf(transformedLocation); val.IsValid() && !tpgresource.IsEmptyValue(val) {
transformed["location"] = transformedLocation
}
return transformed, nil
}
func expandBigQueryJobJobReferenceJobId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}
func expandBigQueryJobJobReferenceLocation(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
return v, nil
}