diff --git a/mmv1/third_party/terraform/services/bigquery/resource_bigquery_table.go b/mmv1/third_party/terraform/services/bigquery/resource_bigquery_table.go
index c295af431850..4e584b9ed313 100644
--- a/mmv1/third_party/terraform/services/bigquery/resource_bigquery_table.go
+++ b/mmv1/third_party/terraform/services/bigquery/resource_bigquery_table.go
@@ -622,6 +622,13 @@ func ResourceBigQueryTable() *schema.Resource {
 							},
 						},
 
+						"json_extension": {
+							Type:         schema.TypeString,
+							Optional:     true,
+							ValidateFunc: validation.StringInSlice([]string{"GEOJSON"}, false),
+							Description:  `Load option to be used together with sourceFormat newline-delimited JSON to indicate that a variant of JSON is being loaded. To load newline-delimited GeoJSON, specify GEOJSON (and sourceFormat must be set to NEWLINE_DELIMITED_JSON).`,
+						},
+
 						"parquet_options": {
 							Type:        schema.TypeList,
 							Optional:    true,
@@ -1784,6 +1791,10 @@ func expandExternalDataConfiguration(cfg interface{}) (*bigquery.ExternalDataCon
 		edc.Compression = v.(string)
 	}
 
+	if v, ok := raw["json_extension"]; ok {
+		edc.JsonExtension = v.(string)
+	}
+
 	if v, ok := raw["csv_options"]; ok {
 		edc.CsvOptions = expandCsvOptions(v)
 	}
@@ -1851,6 +1862,10 @@ func flattenExternalDataConfiguration(edc *bigquery.ExternalDataConfiguration) (
 		result["compression"] = edc.Compression
 	}
 
+	if edc.JsonExtension != "" {
+		result["json_extension"] = edc.JsonExtension
+	}
+
 	if edc.CsvOptions != nil {
 		result["csv_options"] = flattenCsvOptions(edc.CsvOptions)
 	}
diff --git a/mmv1/third_party/terraform/services/bigquery/resource_bigquery_table_test.go b/mmv1/third_party/terraform/services/bigquery/resource_bigquery_table_test.go
index cdecd09b2f6d..5cab9a250f87 100644
--- a/mmv1/third_party/terraform/services/bigquery/resource_bigquery_table_test.go
+++ b/mmv1/third_party/terraform/services/bigquery/resource_bigquery_table_test.go
@@ -2953,6 +2953,8 @@ resource "google_bigquery_table" "test" {
       encoding = "%s"
     }
 
+	json_extension = "GEOJSON"
+
     hive_partitioning_options {
       mode = "CUSTOM"
       source_uri_prefix = "gs://${google_storage_bucket.test.name}/{key1:STRING}"
diff --git a/mmv1/third_party/terraform/website/docs/r/bigquery_table.html.markdown b/mmv1/third_party/terraform/website/docs/r/bigquery_table.html.markdown
index 525f395d8a8d..dc0c5df595c4 100644
--- a/mmv1/third_party/terraform/website/docs/r/bigquery_table.html.markdown
+++ b/mmv1/third_party/terraform/website/docs/r/bigquery_table.html.markdown
@@ -190,6 +190,8 @@ in Terraform state, a `terraform destroy` or `terraform apply` that would delete
 * `json_options` (Optional) - Additional properties to set if
     `source_format` is set to "JSON". Structure is [documented below](#nested_json_options).
 
+* `json_extension` (Optional) - Used to indicate that a JSON variant, rather than normal JSON, is being used as the sourceFormat. This should only be used in combination with the `JSON` source format. Valid values are: `GEOJSON`.
+
 * `parquet_options` (Optional) - Additional properties to set if
     `source_format` is set to "PARQUET". Structure is [documented below](#nested_parquet_options).