{
  "baseUrl": "https://bigquerymigration.googleapis.com/",
  "servicePath": "",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "title": "BigQuery Migration API",
  "revision": "20260413",
  "canonicalName": "Migration Service",
  "batchPath": "batch",
  "kind": "discovery#restDescription",
  "discoveryVersion": "v1",
  "id": "bigquerymigration:v2alpha",
  "description": "The migration service, exposing apis for migration jobs operations, and agent management.",
  "rootUrl": "https://bigquerymigration.googleapis.com/",
  "version": "v2alpha",
  "ownerName": "Google",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/bigquerymigration": {
          "description": "See, edit, configure, and delete your Google Cloud BigQuery Migration data and see the email address for your Google Account"
        },
        "https://www.googleapis.com/auth/bigquerymigration.readonly": {
          "description": "See your Google Cloud BigQuery Migration data and the email address of your Google Account"
        },
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        },
        "https://www.googleapis.com/auth/devstorage.read_only": {
          "description": "View your data in Google Cloud Storage"
        }
      }
    }
  },
  "version_module": true,
  "name": "bigquerymigration",
  "endpoints": [
    {
      "endpointUrl": "https://bigquerymigration.asia-northeast1.rep.googleapis.com/",
      "location": "asia-northeast1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.asia-south1.rep.googleapis.com/",
      "location": "asia-south1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.asia-south2.rep.googleapis.com/",
      "location": "asia-south2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.asia-southeast1.rep.googleapis.com/",
      "location": "asia-southeast1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.australia-southeast1.rep.googleapis.com/",
      "location": "australia-southeast1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.europe-west1.rep.googleapis.com/",
      "location": "europe-west1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.europe-west2.rep.googleapis.com/",
      "location": "europe-west2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.europe-west3.rep.googleapis.com/",
      "location": "europe-west3",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.europe-west4.rep.googleapis.com/",
      "location": "europe-west4",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.europe-west6.rep.googleapis.com/",
      "location": "europe-west6",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.europe-west8.rep.googleapis.com/",
      "location": "europe-west8",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.europe-west9.rep.googleapis.com/",
      "location": "europe-west9",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.me-central2.rep.googleapis.com/",
      "location": "me-central2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.northamerica-northeast1.rep.googleapis.com/",
      "location": "northamerica-northeast1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.northamerica-northeast2.rep.googleapis.com/",
      "location": "northamerica-northeast2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.southamerica-east1.rep.googleapis.com/",
      "location": "southamerica-east1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-central1.rep.googleapis.com/",
      "location": "us-central1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-central2.rep.googleapis.com/",
      "location": "us-central2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-east1.rep.googleapis.com/",
      "location": "us-east1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-east4.rep.googleapis.com/",
      "location": "us-east4",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-east5.rep.googleapis.com/",
      "location": "us-east5",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-east7.rep.googleapis.com/",
      "location": "us-east7",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-south1.rep.googleapis.com/",
      "location": "us-south1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-west1.rep.googleapis.com/",
      "location": "us-west1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-west2.rep.googleapis.com/",
      "location": "us-west2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-west3.rep.googleapis.com/",
      "location": "us-west3",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-west4.rep.googleapis.com/",
      "location": "us-west4",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-west8.rep.googleapis.com/",
      "location": "us-west8",
      "description": "Regional Endpoint"
    }
  ],
  "ownerDomain": "google.com",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "translateQuery": {
              "id": "bigquerymigration.projects.locations.translateQuery",
              "path": "v2alpha/{+parent}:translateQuery",
              "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}:translateQuery",
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "description": "Required. The name of the project to which this translation request belongs. Example: `projects/foo/locations/bar`",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "request": {
                "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslateQueryRequest"
              },
              "response": {
                "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslateQueryResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Translates input queries from source dialects to GoogleSQL."
            }
          },
          "resources": {
            "workflows": {
              "methods": {
                "create": {
                  "id": "bigquerymigration.projects.locations.workflows.create",
                  "path": "v2alpha/{+parent}/workflows",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. The name of the project to which this migration workflow belongs. Example: `projects/foo/locations/bar`",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow"
                  },
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquerymigration",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/devstorage.read_only"
                  ],
                  "description": "Creates a migration workflow."
                },
                "get": {
                  "id": "bigquerymigration.projects.locations.workflows.get",
                  "path": "v2alpha/{+name}",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "readMask": {
                      "description": "The list of fields to be retrieved.",
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquerymigration",
                    "https://www.googleapis.com/auth/bigquerymigration.readonly",
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets a previously created migration workflow."
                },
                "list": {
                  "id": "bigquerymigration.projects.locations.workflows.list",
                  "path": "v2alpha/{+parent}/workflows",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows",
                  "httpMethod": "GET",
                  "parameters": {
                    "parent": {
                      "description": "Required. The project and location of the migration workflows to list. Example: `projects/123/locations/us`",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "readMask": {
                      "description": "The list of fields to be retrieved.",
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask"
                    },
                    "pageSize": {
                      "description": "The maximum number of migration workflows to return. The service may return fewer than this number.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "A page token, received from previous `ListMigrationWorkflows` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMigrationWorkflows` must match the call that provided the page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "filter": {
                      "description": "Optional. An optional AIP-160 filter to apply. The following attributes are supported: `display_name`, `state`, `task.name`, and `task.type`.",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "description": "Optional. An optional AIP-132 order by field. The following attributes are supported: `display_name`, `state`, `task.name`, and `task.type`.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaListMigrationWorkflowsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists previously created migration workflow."
                },
                "delete": {
                  "id": "bigquerymigration.projects.locations.workflows.delete",
                  "path": "v2alpha/{+name}",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes a migration workflow by name."
                },
                "start": {
                  "id": "bigquerymigration.projects.locations.workflows.start",
                  "path": "v2alpha/{+name}:start",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}:start",
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaStartMigrationWorkflowRequest"
                  },
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Starts a previously created migration workflow. I.e., the state transitions from DRAFT to RUNNING. This is a no-op if the state is already RUNNING. An error will be signaled if the state is anything other than DRAFT or RUNNING."
                }
              },
              "resources": {
                "subtasks": {
                  "methods": {
                    "get": {
                      "id": "bigquerymigration.projects.locations.workflows.subtasks.get",
                      "path": "v2alpha/{+name}",
                      "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/subtasks/{subtasksId}",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "Required. The unique identifier for the migration subtask. Example: `projects/123/locations/us/workflows/1234/subtasks/543`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+/subtasks/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "readMask": {
                          "description": "Optional. The list of fields to be retrieved.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationSubtask"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets a previously created migration subtask."
                    },
                    "list": {
                      "id": "bigquerymigration.projects.locations.workflows.subtasks.list",
                      "path": "v2alpha/{+parent}/subtasks",
                      "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/subtasks",
                      "httpMethod": "GET",
                      "parameters": {
                        "parent": {
                          "description": "Required. The migration task of the subtasks to list. Example: `projects/123/locations/us/workflows/1234`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "readMask": {
                          "description": "Optional. The list of fields to be retrieved.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        },
                        "pageSize": {
                          "description": "Optional. The maximum number of migration tasks to return. The service may return fewer than this number.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        },
                        "pageToken": {
                          "description": "Optional. A page token, received from previous `ListMigrationSubtasks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMigrationSubtasks` must match the call that provided the page token.",
                          "location": "query",
                          "type": "string"
                        },
                        "filter": {
                          "description": "Optional. The filter to apply. This can be used to get the subtasks of a specific tasks in a workflow, e.g. `migration_task = \"ab012\"` where `\"ab012\"` is the task ID (not the name in the named map).",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "GoogleCloudBigqueryMigrationV2alphaListMigrationSubtasksResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Lists previously created migration subtasks."
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "schemas": {
    "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow": {
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow",
      "description": "A migration workflow which specifies what needs to be done for an EDW migration.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. Immutable. Identifier. The unique identifier for the migration workflow. The ID is server-generated. Example: `projects/123/locations/us/workflows/345`",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the workflow. This can be set to give a workflow a descriptive name. There is no guarantee or enforcement of uniqueness.",
          "type": "string"
        },
        "tasks": {
          "description": "The tasks in a workflow in a named map. The name (i.e. key) has no meaning and is merely a convenient way to address a specific task in a workflow.",
          "type": "object",
          "additionalProperties": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationTask"
          }
        },
        "state": {
          "description": "Output only. That status of the workflow.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Workflow state is unspecified.",
            "Workflow is in draft status, i.e. tasks are not yet eligible for execution.",
            "Workflow is running (i.e. tasks are eligible for execution).",
            "Workflow is paused. Tasks currently in progress may continue, but no further tasks will be scheduled.",
            "Workflow is complete. There should not be any task in a non-terminal state, but if they are (e.g. forced termination), they will not be scheduled."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "RUNNING",
            "PAUSED",
            "COMPLETED"
          ]
        },
        "createTime": {
          "description": "Output only. Time when the workflow was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "lastUpdateTime": {
          "description": "Output only. Time when the workflow was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationTask": {
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationTask",
      "description": "A single task for a migration which has details about the configuration of the task.",
      "type": "object",
      "properties": {
        "assessmentTaskDetails": {
          "description": "Task configuration for Assessment.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAssessmentTaskDetails"
        },
        "translationTaskDetails": {
          "description": "Task configuration for Batch SQL Translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskDetails"
        },
        "translationConfigDetails": {
          "description": "Task configuration for CW Batch/Offline SQL Translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationConfigDetails"
        },
        "translationDetails": {
          "description": "Task details for unified SQL Translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationDetails"
        },
        "id": {
          "description": "Output only. Immutable. The unique identifier for the migration task. The ID is server-generated.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "The type of the task. This must be one of the supported task types: Translation_Teradata2BQ, Translation_Redshift2BQ, Translation_Bteq2BQ, Translation_Oracle2BQ, Translation_HiveQL2BQ, Translation_SparkSQL2BQ, Translation_Snowflake2BQ, Translation_Netezza2BQ, Translation_AzureSynapse2BQ, Translation_Vertica2BQ, Translation_SQLServer2BQ, Translation_SQLServer2Postgresql, Translation_Presto2BQ, Translation_MySQL2BQ, Translation_Postgresql2BQ, Translation_SQLite2BQ, Translation_Greenplum2BQ, Translation_Impala2BQ.",
          "type": "string"
        },
        "details": {
          "description": "DEPRECATED! Use one of the task_details below. The details of the task. The type URL must be one of the supported task details messages and correspond to the Task's type.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "state": {
          "description": "Output only. The current state of the task.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The state is unspecified.",
            "The task is waiting for orchestration.",
            "The task is assigned to an orchestrator.",
            "The task is running, i.e. its subtasks are ready for execution.",
            "The task is paused. Assigned subtasks can continue, but no new subtasks will be scheduled.",
            "The task finished successfully.",
            "The task finished unsuccessfully."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "PENDING",
            "ORCHESTRATING",
            "RUNNING",
            "PAUSED",
            "SUCCEEDED",
            "FAILED"
          ]
        },
        "processingError": {
          "description": "Output only. An explanation that may be populated when the task is in FAILED state.",
          "readOnly": true,
          "$ref": "GoogleRpcErrorInfo"
        },
        "createTime": {
          "description": "Output only. Time when the task was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "lastUpdateTime": {
          "description": "Output only. Time when the task was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "orchestrationResult": {
          "description": "Output only. Deprecated: Use the task_result field below instead. Additional information about the orchestration.",
          "readOnly": true,
          "deprecated": true,
          "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationTaskOrchestrationResult"
        },
        "resourceErrorDetails": {
          "description": "Output only. Provides details to errors and issues encountered while processing the task. Presence of error details does not mean that the task failed.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaResourceErrorDetail"
          }
        },
        "resourceErrorCount": {
          "description": "Output only. The number or resources with errors. Note: This is not the total number of errors as each resource can have more than one error. This is used to indicate truncation by having a `resource_error_count` that is higher than the size of `resource_error_details`.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        },
        "metrics": {
          "description": "Output only. The metrics for the task.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTimeSeries"
          }
        },
        "taskResult": {
          "description": "Output only. The result of the task.",
          "readOnly": true,
          "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationTaskResult"
        },
        "totalProcessingErrorCount": {
          "description": "Output only. Count of all the processing errors in this task and its subtasks.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        },
        "totalResourceErrorCount": {
          "description": "Output only. Count of all the resource errors in this task and its subtasks.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaAssessmentTaskDetails": {
      "id": "GoogleCloudBigqueryMigrationV2alphaAssessmentTaskDetails",
      "description": "Assessment task config.",
      "type": "object",
      "properties": {
        "inputPath": {
          "description": "Required. The Cloud Storage path for assessment input files.",
          "type": "string"
        },
        "outputDataset": {
          "description": "Required. The BigQuery dataset for output.",
          "type": "string"
        },
        "querylogsPath": {
          "description": "Optional. An optional Cloud Storage path to write the query logs (which is then used as an input path on the translation task)",
          "type": "string"
        },
        "dataSource": {
          "description": "Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) from which the input data is extracted.",
          "type": "string"
        },
        "featureHandle": {
          "description": "Optional. A collection of additional feature flags for this assessment.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAssessmentFeatureHandle"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaAssessmentFeatureHandle": {
      "id": "GoogleCloudBigqueryMigrationV2alphaAssessmentFeatureHandle",
      "description": "User-definable feature flags for assessment tasks.",
      "type": "object",
      "properties": {
        "addShareableDataset": {
          "description": "Optional. Whether to create a dataset containing non-PII data in addition to the output dataset.",
          "type": "boolean"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationTaskDetails": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskDetails",
      "description": "The translation task config to capture necessary settings for a translation task and subtask.",
      "type": "object",
      "properties": {
        "teradataOptions": {
          "description": "The Teradata SQL specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTeradataOptions"
        },
        "bteqOptions": {
          "description": "The BTEQ specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaBteqOptions"
        },
        "inputPath": {
          "description": "The Cloud Storage path for translation input files.",
          "type": "string"
        },
        "outputPath": {
          "description": "The Cloud Storage path for translation output files.",
          "type": "string"
        },
        "filePaths": {
          "description": "Cloud Storage files to be processed for translation.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationFileMapping"
          }
        },
        "schemaPath": {
          "description": "The Cloud Storage path to DDL files as table schema to assist semantic translation.",
          "type": "string"
        },
        "fileEncoding": {
          "description": "The file encoding type.",
          "type": "string",
          "enumDescriptions": [
            "File encoding setting is not specified.",
            "File encoding is UTF_8.",
            "File encoding is ISO_8859_1.",
            "File encoding is US_ASCII.",
            "File encoding is UTF_16.",
            "File encoding is UTF_16LE.",
            "File encoding is UTF_16BE."
          ],
          "enum": [
            "FILE_ENCODING_UNSPECIFIED",
            "UTF_8",
            "ISO_8859_1",
            "US_ASCII",
            "UTF_16",
            "UTF_16LE",
            "UTF_16BE"
          ]
        },
        "identifierSettings": {
          "description": "The settings for SQL identifiers.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaIdentifierSettings"
        },
        "specialTokenMap": {
          "description": "The map capturing special tokens to be replaced during translation. The key is special token in string. The value is the token data type. This is used to translate SQL query template which contains special token as place holder. The special token makes a query invalid to parse. This map will be applied to annotate those special token with types to let parser understand how to parse them into proper structure with type information.",
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "enumDescriptions": [
              "Token type is not specified.",
              "Token type as string.",
              "Token type as integer.",
              "Token type as numeric.",
              "Token type as boolean.",
              "Token type as float.",
              "Token type as date.",
              "Token type as timestamp."
            ],
            "enum": [
              "TOKEN_TYPE_UNSPECIFIED",
              "STRING",
              "INT64",
              "NUMERIC",
              "BOOL",
              "FLOAT64",
              "DATE",
              "TIMESTAMP"
            ]
          }
        },
        "filter": {
          "description": "The filter applied to translation details.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaFilter"
        },
        "translationExceptionTable": {
          "description": "Specifies the exact name of the bigquery table (\"dataset.table\") to be used for surfacing raw translation errors. If the table does not exist, we will create it. If it already exists and the schema is the same, we will re-use. If the table exists and the schema is different, we will throw an error.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTeradataOptions": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTeradataOptions",
      "description": "Teradata SQL specific translation task related settings.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaBteqOptions": {
      "id": "GoogleCloudBigqueryMigrationV2alphaBteqOptions",
      "description": "BTEQ translation task related settings.",
      "type": "object",
      "properties": {
        "projectDataset": {
          "description": "Specifies the project and dataset in BigQuery that will be used for external table creation during the translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaDatasetReference"
        },
        "defaultPathUri": {
          "description": "The Cloud Storage location to be used as the default path for files that are not otherwise specified in the file replacement map.",
          "type": "string"
        },
        "fileReplacementMap": {
          "description": "Maps the local paths that are used in BTEQ scripts (the keys) to the paths in Cloud Storage that should be used in their stead in the translation (the value).",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaDatasetReference": {
      "id": "GoogleCloudBigqueryMigrationV2alphaDatasetReference",
      "description": "Reference to a BigQuery dataset.",
      "type": "object",
      "properties": {
        "datasetId": {
          "description": "A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.",
          "type": "string"
        },
        "projectId": {
          "description": "The ID of the project containing this dataset.",
          "type": "string"
        },
        "datasetIdAlternative": {
          "description": "The alternative field that will be used when the service is not able to translate the received data to the dataset_id field.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "projectIdAlternative": {
          "description": "The alternative field that will be used when the service is not able to translate the received data to the project_id field.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationFileMapping": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationFileMapping",
      "description": "Mapping between an input and output file to be translated in a subtask.",
      "type": "object",
      "properties": {
        "inputPath": {
          "description": "The Cloud Storage path for a file to translation in a subtask.",
          "type": "string"
        },
        "outputPath": {
          "description": "The Cloud Storage path to write back the corresponding input file to.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaIdentifierSettings": {
      "id": "GoogleCloudBigqueryMigrationV2alphaIdentifierSettings",
      "description": "Settings related to SQL identifiers.",
      "type": "object",
      "properties": {
        "outputIdentifierCase": {
          "description": "The setting to control output queries' identifier case.",
          "type": "string",
          "enumDescriptions": [
            "The identifier case is not specified.",
            "Identifiers' cases will be kept as the original cases.",
            "Identifiers will be in upper cases.",
            "Identifiers will be in lower cases."
          ],
          "enum": [
            "IDENTIFIER_CASE_UNSPECIFIED",
            "ORIGINAL",
            "UPPER",
            "LOWER"
          ]
        },
        "identifierRewriteMode": {
          "description": "Specifies the rewrite mode for SQL identifiers.",
          "type": "string",
          "enumDescriptions": [
            "SQL Identifier rewrite mode is unspecified.",
            "SQL identifiers won't be rewrite.",
            "All SQL identifiers will be rewrite."
          ],
          "enum": [
            "IDENTIFIER_REWRITE_MODE_UNSPECIFIED",
            "NONE",
            "REWRITE_ALL"
          ]
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaFilter": {
      "id": "GoogleCloudBigqueryMigrationV2alphaFilter",
      "description": "The filter applied to fields of translation details.",
      "type": "object",
      "properties": {
        "inputFileExclusionPrefixes": {
          "description": "The list of prefixes used to exclude processing for input files.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationConfigDetails": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationConfigDetails",
      "description": "The translation config to capture necessary settings for a translation task and subtask.",
      "type": "object",
      "properties": {
        "gcsSourcePath": {
          "description": "The Cloud Storage path for a directory of files to translate in a task.",
          "type": "string"
        },
        "gcsTargetPath": {
          "description": "The Cloud Storage path to write back the corresponding input files to.",
          "type": "string"
        },
        "nameMappingList": {
          "description": "The mapping of objects to their desired output names in list form.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaObjectNameMappingList"
        },
        "sourceDialect": {
          "description": "The dialect of the input files.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaDialect"
        },
        "targetDialect": {
          "description": "The target dialect for the engine to translate the input to.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaDialect"
        },
        "sourceEnv": {
          "description": "The default source environment values for the translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceEnv"
        },
        "sourceTargetLocationMapping": {
          "description": "The mapping from source location paths to target location paths.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceTargetLocationMapping"
          }
        },
        "requestSource": {
          "description": "The indicator to show translation request initiator.",
          "type": "string"
        },
        "targetTypes": {
          "description": "The types of output to generate, e.g. sql, metadata etc. If not specified, a default set of targets will be generated. Some additional target types may be slower to generate. See the documentation for the set of available target types.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaObjectNameMappingList": {
      "id": "GoogleCloudBigqueryMigrationV2alphaObjectNameMappingList",
      "description": "Represents a map of name mappings using a list of key:value proto messages of existing name to desired output name.",
      "type": "object",
      "properties": {
        "nameMap": {
          "description": "The elements of the object name map.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaObjectNameMapping"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaObjectNameMapping": {
      "id": "GoogleCloudBigqueryMigrationV2alphaObjectNameMapping",
      "description": "Represents a key-value pair of NameMappingKey to NameMappingValue to represent the mapping of SQL names from the input value to desired output.",
      "type": "object",
      "properties": {
        "source": {
          "description": "The name of the object in source that is being mapped.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaNameMappingKey"
        },
        "target": {
          "description": "The desired target name of the object that is being mapped.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaNameMappingValue"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaNameMappingKey": {
      "id": "GoogleCloudBigqueryMigrationV2alphaNameMappingKey",
      "description": "The potential components of a full name mapping that will be mapped during translation in the source data warehouse.",
      "type": "object",
      "properties": {
        "type": {
          "description": "The type of object that is being mapped.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified name mapping type.",
            "The object being mapped is a database.",
            "The object being mapped is a schema.",
            "The object being mapped is a relation.",
            "The object being mapped is an attribute.",
            "The object being mapped is a relation alias.",
            "The object being mapped is a an attribute alias.",
            "The object being mapped is a function."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "DATABASE",
            "SCHEMA",
            "RELATION",
            "ATTRIBUTE",
            "RELATION_ALIAS",
            "ATTRIBUTE_ALIAS",
            "FUNCTION"
          ]
        },
        "database": {
          "description": "The database name (BigQuery project ID equivalent in the source data warehouse).",
          "type": "string"
        },
        "schema": {
          "description": "The schema name (BigQuery dataset equivalent in the source data warehouse).",
          "type": "string"
        },
        "relation": {
          "description": "The relation name (BigQuery table or view equivalent in the source data warehouse).",
          "type": "string"
        },
        "attribute": {
          "description": "The attribute name (BigQuery column equivalent in the source data warehouse).",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaNameMappingValue": {
      "id": "GoogleCloudBigqueryMigrationV2alphaNameMappingValue",
      "description": "The potential components of a full name mapping that will be mapped during translation in the target data warehouse.",
      "type": "object",
      "properties": {
        "database": {
          "description": "The database name (BigQuery project ID equivalent in the target data warehouse).",
          "type": "string"
        },
        "schema": {
          "description": "The schema name (BigQuery dataset equivalent in the target data warehouse).",
          "type": "string"
        },
        "relation": {
          "description": "The relation name (BigQuery table or view equivalent in the target data warehouse).",
          "type": "string"
        },
        "attribute": {
          "description": "The attribute name (BigQuery column equivalent in the target data warehouse).",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaDialect",
      "description": "The possible dialect options for translation.",
      "type": "object",
      "properties": {
        "bigqueryDialect": {
          "description": "The BigQuery dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaBigQueryDialect"
        },
        "hiveqlDialect": {
          "description": "The HiveQL dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaHiveQLDialect"
        },
        "redshiftDialect": {
          "description": "The Redshift dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaRedshiftDialect"
        },
        "teradataDialect": {
          "description": "The Teradata dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTeradataDialect"
        },
        "oracleDialect": {
          "description": "The Oracle dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaOracleDialect"
        },
        "sparksqlDialect": {
          "description": "The SparkSQL dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSparkSQLDialect"
        },
        "snowflakeDialect": {
          "description": "The Snowflake dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSnowflakeDialect"
        },
        "netezzaDialect": {
          "description": "The Netezza dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaNetezzaDialect"
        },
        "azureSynapseDialect": {
          "description": "The Azure Synapse dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAzureSynapseDialect"
        },
        "verticaDialect": {
          "description": "The Vertica dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaVerticaDialect"
        },
        "sqlServerDialect": {
          "description": "The SQL Server dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSQLServerDialect"
        },
        "postgresqlDialect": {
          "description": "The Postgresql dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaPostgresqlDialect"
        },
        "prestoDialect": {
          "description": "The Presto dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaPrestoDialect"
        },
        "mysqlDialect": {
          "description": "The MySQL dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaMySQLDialect"
        },
        "db2Dialect": {
          "description": "DB2 dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaDB2Dialect"
        },
        "sqliteDialect": {
          "description": "SQLite dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSQLiteDialect"
        },
        "greenplumDialect": {
          "description": "Greenplum dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaGreenplumDialect"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaBigQueryDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaBigQueryDialect",
      "description": "The dialect definition for BigQuery.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaHiveQLDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaHiveQLDialect",
      "description": "The dialect definition for HiveQL.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaRedshiftDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaRedshiftDialect",
      "description": "The dialect definition for Redshift.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaTeradataDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTeradataDialect",
      "description": "The dialect definition for Teradata.",
      "type": "object",
      "properties": {
        "mode": {
          "description": "Which Teradata sub-dialect mode the user specifies.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified mode.",
            "Teradata SQL mode.",
            "BTEQ mode (which includes SQL)."
          ],
          "enum": [
            "MODE_UNSPECIFIED",
            "SQL",
            "BTEQ"
          ]
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaOracleDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaOracleDialect",
      "description": "The dialect definition for Oracle.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaSparkSQLDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSparkSQLDialect",
      "description": "The dialect definition for SparkSQL.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaSnowflakeDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSnowflakeDialect",
      "description": "The dialect definition for Snowflake.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaNetezzaDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaNetezzaDialect",
      "description": "The dialect definition for Netezza.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaAzureSynapseDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaAzureSynapseDialect",
      "description": "The dialect definition for Azure Synapse.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaVerticaDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaVerticaDialect",
      "description": "The dialect definition for Vertica.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaSQLServerDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSQLServerDialect",
      "description": "The dialect definition for SQL Server.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaPostgresqlDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaPostgresqlDialect",
      "description": "The dialect definition for Postgresql.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaPrestoDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaPrestoDialect",
      "description": "The dialect definition for Presto.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaMySQLDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaMySQLDialect",
      "description": "The dialect definition for MySQL.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaDB2Dialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaDB2Dialect",
      "description": "The dialect definition for DB2.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaSQLiteDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSQLiteDialect",
      "description": "The dialect definition for SQLite.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaGreenplumDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaGreenplumDialect",
      "description": "The dialect definition for Greenplum.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceEnv": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceEnv",
      "description": "Represents the default source environment values for the translation.",
      "type": "object",
      "properties": {
        "defaultDatabase": {
          "description": "The default database name to fully qualify SQL objects when their database name is missing.",
          "type": "string"
        },
        "schemaSearchPath": {
          "description": "The schema search path. When SQL objects are missing schema name, translation engine will search through this list to find the value.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "metadataStoreDataset": {
          "description": "Optional. Expects a valid BigQuery dataset ID that exists, e.g., project-123.metadata_store_123. If specified, translation will search and read the required schema information from a metadata store in this dataset. If metadata store doesn't exist, translation will parse the metadata file and upload the schema info to a temp table in the dataset to speed up future translation jobs.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceTargetLocationMapping": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceTargetLocationMapping",
      "description": "Represents one mapping from a source location path to an optional target location path.",
      "type": "object",
      "properties": {
        "sourceLocation": {
          "description": "The path to the location of the source data.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceLocation"
        },
        "targetLocation": {
          "description": "The path to the location of the target data.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTargetLocation"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceLocation": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceLocation",
      "description": "Represents one path to the location that holds source data.",
      "type": "object",
      "properties": {
        "gcsPath": {
          "description": "The Cloud Storage path for a directory of files.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTargetLocation": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTargetLocation",
      "description": "// Represents one path to the location that holds target data.",
      "type": "object",
      "properties": {
        "gcsPath": {
          "description": "The Cloud Storage path for a directory of files.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationDetails": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationDetails",
      "description": "The translation details to capture the necessary settings for a translation job.",
      "type": "object",
      "properties": {
        "sourceTargetMapping": {
          "description": "The mapping from source to target SQL.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceTargetMapping"
          }
        },
        "targetBaseUri": {
          "description": "The base URI for all writes to persistent storage.",
          "type": "string"
        },
        "sourceEnvironment": {
          "description": "The default source environment values for the translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceEnvironment"
        },
        "targetReturnLiterals": {
          "description": "The list of literal targets that will be directly returned to the response. Each entry consists of the constructed path, EXCLUDING the base path. Not providing a target_base_uri will prevent writing to persistent storage.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "targetTypes": {
          "description": "The types of output to generate, e.g. sql, metadata, lineage_from_sql_scripts, etc. If not specified, a default set of targets will be generated. Some additional target types may be slower to generate. See the documentation for the set of available target types.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "suggestionConfig": {
          "description": "The configuration for the suggestion if requested as a target type.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSuggestionConfig"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceTargetMapping": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceTargetMapping",
      "description": "Represents one mapping from a source SQL to a target SQL.",
      "type": "object",
      "properties": {
        "sourceSpec": {
          "description": "The source SQL or the path to it.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceSpec"
        },
        "targetSpec": {
          "description": "The target SQL or the path for it.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTargetSpec"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceSpec": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceSpec",
      "description": "Represents one path to the location that holds source data.",
      "type": "object",
      "properties": {
        "baseUri": {
          "description": "The base URI for all files to be read in as sources for translation.",
          "type": "string"
        },
        "literal": {
          "description": "Source literal.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaLiteral"
        },
        "gcsFilePath": {
          "description": "The path to a single source file in Cloud Storage.",
          "type": "string"
        },
        "encoding": {
          "description": "Optional. The optional field to specify the encoding of the sql bytes.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaLiteral": {
      "id": "GoogleCloudBigqueryMigrationV2alphaLiteral",
      "description": "Literal data.",
      "type": "object",
      "properties": {
        "literalString": {
          "description": "Literal string data.",
          "type": "string"
        },
        "literalBytes": {
          "description": "Literal byte data.",
          "type": "string",
          "format": "byte"
        },
        "relativePath": {
          "description": "Required. The identifier of the literal entry.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTargetSpec": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTargetSpec",
      "description": "Represents one path to the location that holds target data.",
      "type": "object",
      "properties": {
        "relativePath": {
          "description": "The relative path for the target data. Given source file `base_uri/input/sql`, the output would be `target_base_uri/sql/relative_path/input.sql`.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceEnvironment": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceEnvironment",
      "description": "Represents the default source environment values for the translation.",
      "type": "object",
      "properties": {
        "defaultDatabase": {
          "description": "The default database name to fully qualify SQL objects when their database name is missing.",
          "type": "string"
        },
        "schemaSearchPath": {
          "description": "The schema search path. When SQL objects are missing schema name, translation engine will search through this list to find the value.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "metadataStoreDataset": {
          "description": "Optional. Expects a validQ BigQuery dataset ID that exists, e.g., project-123.metadata_store_123. If specified, translation will search and read the required schema information from a metadata store in this dataset. If metadata store doesn't exist, translation will parse the metadata file and upload the schema info to a temp table in the dataset to speed up future translation jobs.",
          "type": "string"
        },
        "metadataCaching": {
          "description": "Optional. Metadata caching settings. If specified, translation will cache the metadata. Otherwise, metadata will be parsed from the metadata file. The cache is stored on the service side. Hence, enabling this feature will store data from the provided metadata file on the service side for up to 7 days.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaMetadataCaching"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaMetadataCaching": {
      "id": "GoogleCloudBigqueryMigrationV2alphaMetadataCaching",
      "description": "Metadata caching settings.",
      "type": "object",
      "properties": {
        "maxCacheAge": {
          "description": "Optional. The maximum age of the metadata cache. If the cache is older than this value, the cache will be refreshed. A cache will not be kept for longer than 7 days. Providing no value or a value larger than 7 days will result in using the cache if available (i.e. the same as setting the value to 7 days). Setting the duration to 0 or a negative value will refresh the cache.",
          "type": "string",
          "format": "google-duration"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSuggestionConfig": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSuggestionConfig",
      "description": "The configuration for the suggestion if requested as a target type.",
      "type": "object",
      "properties": {
        "skipSuggestionSteps": {
          "description": "The list of suggestion steps to skip.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSuggestionStep"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSuggestionStep": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSuggestionStep",
      "description": "Suggestion step to skip.",
      "type": "object",
      "properties": {
        "suggestionType": {
          "description": "The type of suggestion.",
          "type": "string",
          "enumDescriptions": [
            "Suggestion type unspecified.",
            "Query customization.",
            "Translation explanation."
          ],
          "enum": [
            "SUGGESTION_TYPE_UNSPECIFIED",
            "QUERY_CUSTOMIZATION",
            "TRANSLATION_EXPLANATION"
          ]
        },
        "rewriteTarget": {
          "description": "The rewrite target.",
          "type": "string",
          "enumDescriptions": [
            "Rewrite target unspecified.",
            "Source SQL.",
            "Target SQL."
          ],
          "enum": [
            "REWRITE_TARGET_UNSPECIFIED",
            "SOURCE_SQL",
            "TARGET_SQL"
          ]
        }
      }
    },
    "GoogleRpcErrorInfo": {
      "id": "GoogleRpcErrorInfo",
      "description": "Describes the cause of the error with structured details. Example of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: { \"reason\": \"API_DISABLED\" \"domain\": \"googleapis.com\" \"metadata\": { \"resource\": \"projects/123\", \"service\": \"pubsub.googleapis.com\" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { \"reason\": \"STOCKOUT\" \"domain\": \"spanner.googleapis.com\", \"metadata\": { \"availableRegions\": \"us-central1,us-east2\" } }",
      "type": "object",
      "properties": {
        "reason": {
          "description": "The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.",
          "type": "string"
        },
        "domain": {
          "description": "The logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".",
          "type": "string"
        },
        "metadata": {
          "description": "Additional structured details about this error. Keys must match a regular expression of `a-z+` but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than `{\"instanceLimit\": \"100/request\"}`, should be returned as, `{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of instances that can be created in a single (batch) request.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationTaskOrchestrationResult": {
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationTaskOrchestrationResult",
      "description": "Additional information from the orchestrator when it is done with the task orchestration.",
      "type": "object",
      "properties": {
        "assessmentDetails": {
          "description": "Details specific to assessment task types.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAssessmentOrchestrationResultDetails"
        },
        "translationTaskResult": {
          "description": "Details specific to translation task types.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskResult"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaAssessmentOrchestrationResultDetails": {
      "id": "GoogleCloudBigqueryMigrationV2alphaAssessmentOrchestrationResultDetails",
      "description": "Details for an assessment task orchestration result.",
      "type": "object",
      "properties": {
        "outputTablesSchemaVersion": {
          "description": "Optional. The version used for the output table schemas.",
          "type": "string"
        },
        "reportUri": {
          "description": "Optional. The URI of the Data Studio report.",
          "type": "string"
        },
        "additionalReportUris": {
          "description": "Optional. Mapping with additional report URIs. This gives a mapping of report names to their URIs. The possible values for the keys are documented in the user guide.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationTaskResult": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskResult",
      "description": "Translation specific result details from the migration task.",
      "type": "object",
      "properties": {
        "translatedLiterals": {
          "description": "The list of the translated literals.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaLiteral"
          }
        },
        "reportLogMessages": {
          "description": "The records from the aggregate CSV report for a migration workflow.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaGcsReportLogMessage"
          }
        },
        "consoleUri": {
          "description": "The Cloud Console URI for the migration workflow.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaGcsReportLogMessage": {
      "id": "GoogleCloudBigqueryMigrationV2alphaGcsReportLogMessage",
      "description": "A record in the aggregate CSV report for a migration workflow",
      "type": "object",
      "properties": {
        "severity": {
          "description": "Severity of the translation record.",
          "type": "string"
        },
        "category": {
          "description": "Category of the error/warning. Example: SyntaxError",
          "type": "string"
        },
        "filePath": {
          "description": "The file path in which the error occurred",
          "type": "string"
        },
        "filename": {
          "description": "The file name in which the error occurred",
          "type": "string"
        },
        "sourceScriptLine": {
          "description": "Specifies the row from the source text where the error occurred (0 based, -1 for messages without line location). Example: 2",
          "type": "integer",
          "format": "int32"
        },
        "sourceScriptColumn": {
          "description": "Specifies the column from the source texts where the error occurred. (0 based, -1 for messages without column location) example: 6",
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "description": "Detailed message of the record.",
          "type": "string"
        },
        "scriptContext": {
          "description": "The script context (obfuscated) in which the error occurred",
          "type": "string"
        },
        "action": {
          "description": "Category of the error/warning. Example: SyntaxError",
          "type": "string"
        },
        "effect": {
          "description": "Effect of the error/warning. Example: COMPATIBILITY",
          "type": "string"
        },
        "objectName": {
          "description": "Name of the affected object in the log message.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaResourceErrorDetail": {
      "id": "GoogleCloudBigqueryMigrationV2alphaResourceErrorDetail",
      "description": "Provides details for errors and the corresponding resources.",
      "type": "object",
      "properties": {
        "resourceInfo": {
          "description": "Required. Information about the resource where the error is located.",
          "$ref": "GoogleRpcResourceInfo"
        },
        "errorDetails": {
          "description": "Required. The error details for the resource.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaErrorDetail"
          }
        },
        "errorCount": {
          "description": "Required. How many errors there are in total for the resource. Truncation can be indicated by having an `error_count` that is higher than the size of `error_details`.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleRpcResourceInfo": {
      "id": "GoogleRpcResourceInfo",
      "description": "Describes the resource that is being accessed.",
      "type": "object",
      "properties": {
        "resourceType": {
          "description": "A name for the type of resource being accessed, e.g. \"sql table\", \"cloud storage bucket\", \"file\", \"Google calendar\"; or the type URL of the resource: e.g. \"type.googleapis.com/google.pubsub.v1.Topic\".",
          "type": "string"
        },
        "resourceName": {
          "description": "The name of the resource being accessed. For example, a shared calendar name: \"example.com_4fghdhgsrgh@group.calendar.google.com\", if the current error is google.rpc.Code.PERMISSION_DENIED.",
          "type": "string"
        },
        "owner": {
          "description": "The owner of the resource (optional). For example, \"user:\" or \"project:\".",
          "type": "string"
        },
        "description": {
          "description": "Describes what error is encountered when accessing this resource. For example, updating a cloud project may require the `writer` permission on the developer console project.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaErrorDetail": {
      "id": "GoogleCloudBigqueryMigrationV2alphaErrorDetail",
      "description": "Provides details for errors, e.g. issues that where encountered when processing a subtask.",
      "type": "object",
      "properties": {
        "location": {
          "description": "Optional. The exact location within the resource (if applicable).",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaErrorLocation"
        },
        "errorInfo": {
          "description": "Required. Describes the cause of the error with structured detail.",
          "$ref": "GoogleRpcErrorInfo"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaErrorLocation": {
      "id": "GoogleCloudBigqueryMigrationV2alphaErrorLocation",
      "description": "Holds information about where the error is located.",
      "type": "object",
      "properties": {
        "line": {
          "description": "Optional. If applicable, denotes the line where the error occurred. A zero value means that there is no line information.",
          "type": "integer",
          "format": "int32"
        },
        "column": {
          "description": "Optional. If applicable, denotes the column where the error occurred. A zero value means that there is no columns information.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTimeSeries": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTimeSeries",
      "description": "The metrics object for a SubTask.",
      "type": "object",
      "properties": {
        "metric": {
          "description": "Required. The name of the metric. If the metric is not known by the service yet, it will be auto-created.",
          "type": "string"
        },
        "valueType": {
          "description": "Required. The value type of the time series.",
          "type": "string",
          "enumDescriptions": [
            "Do not use this default value.",
            "The value is a boolean. This value type can be used only if the metric kind is `GAUGE`.",
            "The value is a signed 64-bit integer.",
            "The value is a double precision floating point number.",
            "The value is a text string. This value type can be used only if the metric kind is `GAUGE`.",
            "The value is a `Distribution`.",
            "The value is money."
          ],
          "enum": [
            "VALUE_TYPE_UNSPECIFIED",
            "BOOL",
            "INT64",
            "DOUBLE",
            "STRING",
            "DISTRIBUTION",
            "MONEY"
          ]
        },
        "metricKind": {
          "description": "Optional. The metric kind of the time series. If present, it must be the same as the metric kind of the associated metric. If the associated metric's descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either `GAUGE` (the default) or `CUMULATIVE`.",
          "type": "string",
          "enumDescriptions": [
            "Do not use this default value.",
            "An instantaneous measurement of a value.",
            "The change in a value during a time interval.",
            "A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points."
          ],
          "enum": [
            "METRIC_KIND_UNSPECIFIED",
            "GAUGE",
            "DELTA",
            "CUMULATIVE"
          ]
        },
        "points": {
          "description": "Required. The data points of this time series. When listing time series, points are returned in reverse time order. When creating a time series, this field must contain exactly one point and the point's type must be the same as the value type of the associated metric. If the associated metric's descriptor must be auto-created, then the value type of the descriptor is determined by the point's type, which must be `BOOL`, `INT64`, `DOUBLE`, or `DISTRIBUTION`.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaPoint"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaPoint": {
      "id": "GoogleCloudBigqueryMigrationV2alphaPoint",
      "description": "A single data point in a time series.",
      "type": "object",
      "properties": {
        "interval": {
          "description": "The time interval to which the data point applies. For `GAUGE` metrics, the start time does not need to be supplied, but if it is supplied, it must equal the end time. For `DELTA` metrics, the start and end time should specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For `CUMULATIVE` metrics, the start and end time should specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTimeInterval"
        },
        "value": {
          "description": "The value of the data point.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTypedValue"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTimeInterval": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTimeInterval",
      "description": "A time interval extending just after a start time through an end time. If the start time is the same as the end time, then the interval represents a single point in time.",
      "type": "object",
      "properties": {
        "startTime": {
          "description": "Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.",
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Required. The end of the time interval.",
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTypedValue": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTypedValue",
      "description": "A single strongly-typed value.",
      "type": "object",
      "properties": {
        "boolValue": {
          "description": "A Boolean value: `true` or `false`.",
          "type": "boolean"
        },
        "int64Value": {
          "description": "A 64-bit integer. Its range is approximately `+/-9.2x10^18`.",
          "type": "string",
          "format": "int64"
        },
        "doubleValue": {
          "description": "A 64-bit double-precision floating-point number. Its magnitude is approximately `+/-10^(+/-300)` and it has 16 significant digits of precision.",
          "type": "number",
          "format": "double"
        },
        "stringValue": {
          "description": "A variable-length string value.",
          "type": "string"
        },
        "distributionValue": {
          "description": "A distribution value.",
          "$ref": "GoogleApiDistribution"
        }
      }
    },
    "GoogleApiDistribution": {
      "id": "GoogleApiDistribution",
      "description": "`Distribution` contains summary statistics for a population of values. It optionally contains a histogram representing the distribution of those values across a set of buckets. The summary statistics are the count, mean, sum of the squared deviation from the mean, the minimum, and the maximum of the set of population of values. The histogram is based on a sequence of buckets and gives a count of values that fall into each bucket. The boundaries of the buckets are given either explicitly or by formulas for buckets of fixed or exponentially increasing widths. Although it is not forbidden, it is generally a bad idea to include non-finite values (infinities or NaNs) in the population of values, as this will render the `mean` and `sum_of_squared_deviation` fields meaningless.",
      "type": "object",
      "properties": {
        "count": {
          "description": "The number of values in the population. Must be non-negative. This value must equal the sum of the values in `bucket_counts` if a histogram is provided.",
          "type": "string",
          "format": "int64"
        },
        "mean": {
          "description": "The arithmetic mean of the values in the population. If `count` is zero then this field must be zero.",
          "type": "number",
          "format": "double"
        },
        "sumOfSquaredDeviation": {
          "description": "The sum of squared deviations from the mean of the values in the population. For values x_i this is: Sum[i=1..n]((x_i - mean)^2) Knuth, \"The Art of Computer Programming\", Vol. 2, page 232, 3rd edition describes Welford's method for accumulating this sum in one pass. If `count` is zero then this field must be zero.",
          "type": "number",
          "format": "double"
        },
        "range": {
          "description": "If specified, contains the range of the population values. The field must not be present if the `count` is zero.",
          "$ref": "GoogleApiDistributionRange"
        },
        "bucketOptions": {
          "description": "Defines the histogram bucket boundaries. If the distribution does not contain a histogram, then omit this field.",
          "$ref": "GoogleApiDistributionBucketOptions"
        },
        "bucketCounts": {
          "description": "The number of values in each bucket of the histogram, as described in `bucket_options`. If the distribution does not have a histogram, then omit this field. If there is a histogram, then the sum of the values in `bucket_counts` must equal the value in the `count` field of the distribution. If present, `bucket_counts` should contain N values, where N is the number of buckets specified in `bucket_options`. If you supply fewer than N values, the remaining values are assumed to be 0. The order of the values in `bucket_counts` follows the bucket numbering schemes described for the three bucket types. The first value must be the count for the underflow bucket (number 0). The next N-2 values are the counts for the finite buckets (number 1 through N-2). The N'th value in `bucket_counts` is the count for the overflow bucket (number N-1).",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "exemplars": {
          "description": "Must be in increasing order of `value` field.",
          "type": "array",
          "items": {
            "$ref": "GoogleApiDistributionExemplar"
          }
        }
      }
    },
    "GoogleApiDistributionRange": {
      "id": "GoogleApiDistributionRange",
      "description": "The range of the population values.",
      "type": "object",
      "properties": {
        "min": {
          "description": "The minimum of the population values.",
          "type": "number",
          "format": "double"
        },
        "max": {
          "description": "The maximum of the population values.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleApiDistributionBucketOptions": {
      "id": "GoogleApiDistributionBucketOptions",
      "description": "`BucketOptions` describes the bucket boundaries used to create a histogram for the distribution. The buckets can be in a linear sequence, an exponential sequence, or each bucket can be specified explicitly. `BucketOptions` does not include the number of values in each bucket. A bucket has an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket must be strictly greater than the lower bound. The sequence of N buckets for a distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i \u003e 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite.",
      "type": "object",
      "properties": {
        "linearBuckets": {
          "description": "The linear bucket.",
          "$ref": "GoogleApiDistributionBucketOptionsLinear"
        },
        "exponentialBuckets": {
          "description": "The exponential buckets.",
          "$ref": "GoogleApiDistributionBucketOptionsExponential"
        },
        "explicitBuckets": {
          "description": "The explicit buckets.",
          "$ref": "GoogleApiDistributionBucketOptionsExplicit"
        }
      }
    },
    "GoogleApiDistributionBucketOptionsLinear": {
      "id": "GoogleApiDistributionBucketOptionsLinear",
      "description": "Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket. There are `num_finite_buckets + 2` (= N) buckets. Bucket `i` has the following boundaries: Upper bound (0 \u003c= i \u003c N-1): offset + (width * i). Lower bound (1 \u003c= i \u003c N): offset + (width * (i - 1)).",
      "type": "object",
      "properties": {
        "numFiniteBuckets": {
          "description": "Must be greater than 0.",
          "type": "integer",
          "format": "int32"
        },
        "width": {
          "description": "Must be greater than 0.",
          "type": "number",
          "format": "double"
        },
        "offset": {
          "description": "Lower bound of the first bucket.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleApiDistributionBucketOptionsExponential": {
      "id": "GoogleApiDistributionBucketOptionsExponential",
      "description": "Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket. There are `num_finite_buckets + 2` (= N) buckets. Bucket `i` has the following boundaries: Upper bound (0 \u003c= i \u003c N-1): scale * (growth_factor ^ i). Lower bound (1 \u003c= i \u003c N): scale * (growth_factor ^ (i - 1)).",
      "type": "object",
      "properties": {
        "numFiniteBuckets": {
          "description": "Must be greater than 0.",
          "type": "integer",
          "format": "int32"
        },
        "growthFactor": {
          "description": "Must be greater than 1.",
          "type": "number",
          "format": "double"
        },
        "scale": {
          "description": "Must be greater than 0.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleApiDistributionBucketOptionsExplicit": {
      "id": "GoogleApiDistributionBucketOptionsExplicit",
      "description": "Specifies a set of buckets with arbitrary widths. There are `size(bounds) + 1` (= N) buckets. Bucket `i` has the following boundaries: Upper bound (0 \u003c= i \u003c N-1): bounds[i] Lower bound (1 \u003c= i \u003c N); bounds[i - 1] The `bounds` field must contain at least one element. If `bounds` has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets.",
      "type": "object",
      "properties": {
        "bounds": {
          "description": "The values must be monotonically increasing.",
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        }
      }
    },
    "GoogleApiDistributionExemplar": {
      "id": "GoogleApiDistributionExemplar",
      "description": "Exemplars are example points that may be used to annotate aggregated distribution values. They are metadata that gives information about a particular value added to a Distribution bucket, such as a trace ID that was active when a value was added. They may contain further information, such as a example values and timestamps, origin, etc.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Value of the exemplar point. This value determines to which bucket the exemplar belongs.",
          "type": "number",
          "format": "double"
        },
        "timestamp": {
          "description": "The observation (sampling) time of the above value.",
          "type": "string",
          "format": "google-datetime"
        },
        "attachments": {
          "description": "Contextual information about the example value. Examples are: Trace: type.googleapis.com/google.monitoring.v3.SpanContext Literal string: type.googleapis.com/google.protobuf.StringValue Labels dropped during aggregation: type.googleapis.com/google.monitoring.v3.DroppedLabels There may be only a single attachment of any given message type in a single exemplar, and this is enforced by the system.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationTaskResult": {
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationTaskResult",
      "description": "The migration task result.",
      "type": "object",
      "properties": {
        "assessmentDetails": {
          "description": "Details specific to assessment task types.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAssessmentOrchestrationResultDetails"
        },
        "translationTaskResult": {
          "description": "Details specific to translation task types.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskResult"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaListMigrationWorkflowsResponse": {
      "id": "GoogleCloudBigqueryMigrationV2alphaListMigrationWorkflowsResponse",
      "description": "Response object for a `ListMigrationWorkflows` call.",
      "type": "object",
      "properties": {
        "migrationWorkflows": {
          "description": "The migration workflows for the specified project / location.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow"
          }
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      }
    },
    "GoogleProtobufEmpty": {
      "id": "GoogleProtobufEmpty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaStartMigrationWorkflowRequest": {
      "id": "GoogleCloudBigqueryMigrationV2alphaStartMigrationWorkflowRequest",
      "description": "A request to start a previously created migration workflow.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationSubtask": {
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationSubtask",
      "description": "A subtask for a migration which carries details about the configuration of the subtask. The content of the details should not matter to the end user, but is a contract between the subtask creator and subtask worker.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. Immutable. The resource name for the migration subtask. The ID is server-generated. Example: `projects/123/locations/us/workflows/345/subtasks/678`",
          "readOnly": true,
          "type": "string"
        },
        "taskId": {
          "description": "The unique ID of the task to which this subtask belongs.",
          "type": "string"
        },
        "type": {
          "description": "The type of the Subtask. The migration service does not check whether this is a known type. It is up to the task creator (i.e. orchestrator or worker) to ensure it only creates subtasks for which there are compatible workers polling for Subtasks.",
          "type": "string"
        },
        "state": {
          "description": "Output only. The current state of the subtask.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The state is unspecified.",
            "The subtask is ready, i.e. it is ready for execution.",
            "The subtask is running, i.e. it is assigned to a worker for execution.",
            "The subtask finished successfully.",
            "The subtask finished unsuccessfully.",
            "The subtask is paused, i.e., it will not be scheduled. If it was already assigned,it might still finish but no new lease renewals will be granted.",
            "The subtask is pending a dependency. It will be scheduled once its dependencies are done."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "RUNNING",
            "SUCCEEDED",
            "FAILED",
            "PAUSED",
            "PENDING_DEPENDENCY"
          ]
        },
        "processingError": {
          "description": "Output only. An explanation that may be populated when the task is in FAILED state.",
          "readOnly": true,
          "$ref": "GoogleRpcErrorInfo"
        },
        "resourceErrorDetails": {
          "description": "Output only. Provides details to errors and issues encountered while processing the subtask. Presence of error details does not mean that the subtask failed.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaResourceErrorDetail"
          }
        },
        "resourceErrorCount": {
          "description": "Output only. The number or resources with errors. Note: This is not the total number of errors as each resource can have more than one error. This is used to indicate truncation by having a `resource_error_count` that is higher than the size of `resource_error_details`.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        },
        "createTime": {
          "description": "Output only. Time when the subtask was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "lastUpdateTime": {
          "description": "Output only. Time when the subtask was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "metrics": {
          "description": "Output only. The metrics for the subtask.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTimeSeries"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaListMigrationSubtasksResponse": {
      "id": "GoogleCloudBigqueryMigrationV2alphaListMigrationSubtasksResponse",
      "description": "Response object for a `ListMigrationSubtasks` call.",
      "type": "object",
      "properties": {
        "migrationSubtasks": {
          "description": "The migration subtasks for the specified task.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationSubtask"
          }
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslateQueryRequest": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslateQueryRequest",
      "description": "The request of translating a SQL query to GoogleSQL.",
      "type": "object",
      "properties": {
        "sourceDialect": {
          "description": "Required. The source SQL dialect of `queries`.",
          "type": "string",
          "enumDescriptions": [
            "SqlTranslationSourceDialect not specified.",
            "Teradata SQL.",
            "Redshift SQL.",
            "Oracle SQL.",
            "HiveQL SQL.",
            "SPARK SQL.",
            "Snowflake SQL.",
            "IBM Netezza SQL.",
            "Azure Synapse",
            "Vertica.",
            "SQL Server dialect.",
            "Presto.",
            "PostgreSQL.",
            "MySQL.",
            "BTEQ.",
            "SQLite dialect.",
            "DB2 dialect.",
            "Greenplum dialect.",
            "Demo dialect.",
            "Demo dialect.",
            "Impala dialect."
          ],
          "enum": [
            "SQL_TRANSLATION_SOURCE_DIALECT_UNSPECIFIED",
            "TERADATA",
            "REDSHIFT",
            "ORACLE",
            "HIVEQL",
            "SPARKSQL",
            "SNOWFLAKE",
            "NETEZZA",
            "AZURESYNAPSE",
            "VERTICA",
            "SQLSERVER",
            "PRESTO",
            "POSTGRESQL",
            "MYSQL",
            "BTEQ",
            "SQLITE",
            "DB2",
            "GREENPLUM",
            "LEGACY_SQL",
            "UNOPTIMIZED_BQ_SQL",
            "IMPALA"
          ]
        },
        "query": {
          "description": "Required. The query to be translated.",
          "type": "string"
        },
        "translationConfigId": {
          "description": "Optional. The id of the translation config to apply. Accepted id: batch translation job Id in the format of \"projects/xxxxxxx/locations/xx/workflows/xxxxxx\".",
          "type": "string"
        },
        "gcsPath": {
          "description": "Optional. The Cloud Storage path for a directory of config files applied during translation.",
          "type": "string"
        },
        "translationEngine": {
          "description": "Optional. The translation engine to use.",
          "type": "string",
          "enumDescriptions": [
            "The engine is unspecified.",
            "Compiler-based translation engine.",
            "AI-based translation engine.",
            "COMPILER with AI enhanced translation engine."
          ],
          "enum": [
            "TRANSLATION_ENGINE_UNSPECIFIED",
            "COMPILER",
            "AI",
            "COMPILER_AI_ENHANCED"
          ]
        },
        "metadataStoreDataset": {
          "description": "Optional. Expects a valid BigQuery dataset ID that exists, e.g., project-123.metadata_store_123. If specified, translation will search and read the required schema information from a metadata store in this dataset instead of parsing a metadata.zip file.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslateQueryResponse": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslateQueryResponse",
      "description": "The response of translating a SQL query to GoogleSQL.",
      "type": "object",
      "properties": {
        "translationJob": {
          "description": "Output only. Immutable. The unique identifier for the SQL translation job. Example: `projects/123/locations/us/translation/1234`",
          "readOnly": true,
          "type": "string"
        },
        "translatedQuery": {
          "description": "The translated result. It may contain error/warning messages as comments.",
          "type": "string"
        },
        "translationResultDetails": {
          "description": "The details of the translation results.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationResultDetails"
        },
        "errors": {
          "description": "The list of errors encountered during the translation, if present. Deprecated: use TranslationResultDetails.TranslationReportRecord instead.",
          "deprecated": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationError"
          }
        },
        "warnings": {
          "description": "The list of warnings encountered during the translation, if present, indicates non-semantically correct translation. Deprecated: use TranslationResultDetails.TranslationReportRecord instead.",
          "deprecated": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationWarning"
          }
        },
        "translationStartTime": {
          "description": "The timestamp when the server starts to process the translation job.",
          "type": "string",
          "format": "google-datetime"
        },
        "translationEndTime": {
          "description": "The timestamp when the translation of the SQL query was completed.",
          "type": "string",
          "format": "google-datetime"
        },
        "suggestions": {
          "description": "Translation suggestions",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationSuggestion"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationResultDetails": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationResultDetails",
      "description": "Translation details like metrics, warning/error records.",
      "type": "object",
      "properties": {
        "translationMetrics": {
          "description": "Translation metrics. E.g., Compiler_Clean: 5, Compiler_BestEffort: 2, Emitter_Clean: 1,Emitter_Error: 3, etc.",
          "type": "object",
          "additionalProperties": {
            "type": "integer",
            "format": "int32"
          }
        },
        "reportRecords": {
          "description": "Translation details about warning/error records.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationReportRecord"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationReportRecord": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationReportRecord",
      "description": "Details about a record.",
      "type": "object",
      "properties": {
        "severity": {
          "description": "Severity of the translation record.",
          "type": "string",
          "enumDescriptions": [
            "SeverityType not specified.",
            "INFO type.",
            "WARNING type. The translated query may still provide useful information if all the report records are WARNING.",
            "ERROR type. Translation failed."
          ],
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "INFO",
            "WARNING",
            "ERROR"
          ]
        },
        "scriptLine": {
          "description": "Specifies the row from the source text where the error occurred (0 based). Example: 2",
          "type": "integer",
          "format": "int32"
        },
        "scriptColumn": {
          "description": "Specifies the column from the source texts where the error occurred. (0 based) example: 6",
          "type": "integer",
          "format": "int32"
        },
        "category": {
          "description": "Category of the error/warning. Example: SyntaxError",
          "type": "string"
        },
        "message": {
          "description": "Detailed message of the record.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSqlTranslationError": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationError",
      "deprecated": true,
      "description": "The detailed error object if the SQL translation job fails. Deprecated! Use TranslationReportRecord to define error messages.",
      "type": "object",
      "properties": {
        "errorType": {
          "description": "The type of SQL translation error.",
          "type": "string",
          "enumDescriptions": [
            "SqlTranslationErrorType not specified.",
            "Failed to parse the input text as a SQL query.",
            "Found unsupported functions in the input SQL query that are not able to translate."
          ],
          "enum": [
            "SQL_TRANSLATION_ERROR_TYPE_UNSPECIFIED",
            "SQL_PARSE_ERROR",
            "UNSUPPORTED_SQL_FUNCTION"
          ]
        },
        "errorDetail": {
          "description": "Specifies the details of the error, including the error message and location from the source text.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationErrorDetail"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSqlTranslationErrorDetail": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationErrorDetail",
      "description": "Structured error object capturing the error message and the location in the source text where the error occurs. Deprecated! Use TranslationReportRecord to define error/warning messages.",
      "type": "object",
      "properties": {
        "row": {
          "description": "Specifies the row from the source text where the error occurred.",
          "type": "string",
          "format": "int64"
        },
        "column": {
          "description": "Specifie the column from the source texts where the error occurred.",
          "type": "string",
          "format": "int64"
        },
        "message": {
          "description": "A human-readable description of the error.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSqlTranslationWarning": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationWarning",
      "deprecated": true,
      "description": "The detailed warning object if the SQL translation job is completed but not semantically correct. Deprecated! Use TranslationReportRecord to define warning messages.",
      "type": "object",
      "properties": {
        "warningDetail": {
          "description": "Specifies the details of the warning, including the warning message and location from the source text.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationErrorDetail"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationSuggestion": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationSuggestion",
      "description": "LLM generated suggestion on fixing translation errors",
      "type": "object",
      "properties": {
        "suggestion": {
          "description": "Translation suggestion.",
          "type": "string"
        },
        "scriptLocation": {
          "description": "Location where the suggestion should be applied in the output script. If unset, the suggestion should be applied to the whole script.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaScriptLocation"
        },
        "validationResult": {
          "description": "Validation result of the suggestion.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlValidationResult"
        },
        "suggestionId": {
          "description": "Suggestion ID.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaScriptLocation": {
      "id": "GoogleCloudBigqueryMigrationV2alphaScriptLocation",
      "description": "Location info of a script.",
      "type": "object",
      "properties": {
        "line": {
          "description": "Specifies the row of a script (0 based). Example: 2.",
          "type": "integer",
          "format": "int32"
        },
        "column": {
          "description": "Specifies the column of a script (0 based). Example: 6.",
          "type": "integer",
          "format": "int32"
        },
        "offset": {
          "description": "Specifies the offset of a script in row of the starting location. Example 0.",
          "type": "integer",
          "format": "int32"
        },
        "length": {
          "description": "Specifies the length of a script from the starting location. Example 10.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSqlValidationResult": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSqlValidationResult",
      "description": "Validation result of the translated SQL.",
      "type": "object",
      "properties": {
        "state": {
          "description": "Output only. Validation state",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "State not specified.",
            "Succeeded.",
            "Failure due to syntax error."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILURE_SYNTAX_ERROR"
          ]
        },
        "message": {
          "description": "Validation message",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksAssessmentV2alphaAssessmentTaskDetails": {
      "id": "GoogleCloudBigqueryMigrationTasksAssessmentV2alphaAssessmentTaskDetails",
      "description": "DEPRECATED! Use the AssessmentTaskDetails defined in com.google.cloud.bigquery.migration.v2alpha.AssessmentTaskDetails instead. Assessment task details.",
      "type": "object",
      "properties": {
        "inputPath": {
          "description": "Required. The Cloud Storage path for assessment input files.",
          "type": "string"
        },
        "outputDataset": {
          "description": "Required. The BigQuery dataset for output.",
          "type": "string"
        },
        "querylogsPath": {
          "description": "Optional. An optional Cloud Storage path to write the query logs (which is then used as an input path on the translation task)",
          "type": "string"
        },
        "dataSource": {
          "description": "Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) from which the input data is extracted.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationTaskDetails": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationTaskDetails",
      "description": "DEPRECATED! Use TranslationTaskDetails defined in com.google.cloud.bigquery.migration.v2alpha.TranslationTaskDetails instead. The translation task details to capture necessary settings for a translation task and subtask.",
      "type": "object",
      "properties": {
        "inputPath": {
          "description": "The Cloud Storage path for translation input files.",
          "type": "string"
        },
        "outputPath": {
          "description": "The Cloud Storage path for translation output files.",
          "type": "string"
        },
        "filePaths": {
          "description": "Cloud Storage files to be processed for translation.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping"
          }
        },
        "schemaPath": {
          "description": "The Cloud Storage path to DDL files as table schema to assist semantic translation.",
          "type": "string"
        },
        "fileEncoding": {
          "description": "The file encoding type.",
          "type": "string",
          "enumDescriptions": [
            "File encoding setting is not specified.",
            "File encoding is UTF_8.",
            "File encoding is ISO_8859_1.",
            "File encoding is US_ASCII.",
            "File encoding is UTF_16.",
            "File encoding is UTF_16LE.",
            "File encoding is UTF_16BE."
          ],
          "enum": [
            "FILE_ENCODING_UNSPECIFIED",
            "UTF_8",
            "ISO_8859_1",
            "US_ASCII",
            "UTF_16",
            "UTF_16LE",
            "UTF_16BE"
          ]
        },
        "identifierSettings": {
          "description": "The settings for SQL identifiers.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings"
        },
        "specialTokenMap": {
          "description": "The map capturing special tokens to be replaced during translation. The key is special token in string. The value is the token data type. This is used to translate SQL query template which contains special token as place holder. The special token makes a query invalid to parse. This map will be applied to annotate those special token with types to let parser understand how to parse them into proper structure with type information.",
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "enumDescriptions": [
              "Token type is not specified.",
              "Token type as string.",
              "Token type as integer.",
              "Token type as numeric.",
              "Token type as boolean.",
              "Token type as float.",
              "Token type as date.",
              "Token type as timestamp."
            ],
            "enum": [
              "TOKEN_TYPE_UNSPECIFIED",
              "STRING",
              "INT64",
              "NUMERIC",
              "BOOL",
              "FLOAT64",
              "DATE",
              "TIMESTAMP"
            ]
          }
        },
        "filter": {
          "description": "The filter applied to translation details.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter"
        },
        "teradataOptions": {
          "description": "The Teradata SQL specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions"
        },
        "bteqOptions": {
          "description": "The BTEQ specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions"
        },
        "translationExceptionTable": {
          "description": "Specifies the exact name of the bigquery table (\"dataset.table\") to be used for surfacing raw translation errors. If the table does not exist, we will create it. If it already exists and the schema is the same, we will re-use. If the table exists and the schema is different, we will throw an error.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping",
      "description": "Mapping between an input and output file to be translated in a subtask.",
      "type": "object",
      "properties": {
        "inputPath": {
          "description": "The Cloud Storage path for a file to translation in a subtask.",
          "type": "string"
        },
        "outputPath": {
          "description": "The Cloud Storage path to write back the corresponding input file to.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings",
      "description": "Settings related to SQL identifiers.",
      "type": "object",
      "properties": {
        "outputIdentifierCase": {
          "description": "The setting to control output queries' identifier case.",
          "type": "string",
          "enumDescriptions": [
            "The identifier case is not specified.",
            "Identifiers' cases will be kept as the original cases.",
            "Identifiers will be in upper cases.",
            "Identifiers will be in lower cases."
          ],
          "enum": [
            "IDENTIFIER_CASE_UNSPECIFIED",
            "ORIGINAL",
            "UPPER",
            "LOWER"
          ]
        },
        "identifierRewriteMode": {
          "description": "Specifies the rewrite mode for SQL identifiers.",
          "type": "string",
          "enumDescriptions": [
            "SQL Identifier rewrite mode is unspecified.",
            "SQL identifiers won't be rewrite.",
            "All SQL identifiers will be rewrite."
          ],
          "enum": [
            "IDENTIFIER_REWRITE_MODE_UNSPECIFIED",
            "NONE",
            "REWRITE_ALL"
          ]
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter",
      "description": "The filter applied to fields of translation details.",
      "type": "object",
      "properties": {
        "inputFileExclusionPrefixes": {
          "description": "The list of prefixes used to exclude processing for input files.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions",
      "description": "Teradata SQL specific translation task related settings.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions",
      "description": "BTEQ translation task related settings.",
      "type": "object",
      "properties": {
        "projectDataset": {
          "description": "Specifies the project and dataset in BigQuery that will be used for external table creation during the translation.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaDatasetReference"
        },
        "defaultPathUri": {
          "description": "The Cloud Storage location to be used as the default path for files that are not otherwise specified in the file replacement map.",
          "type": "string"
        },
        "fileReplacementMap": {
          "description": "Maps the local paths that are used in BTEQ scripts (the keys) to the paths in Cloud Storage that should be used in their stead in the translation (the value).",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaDatasetReference": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaDatasetReference",
      "type": "object",
      "properties": {
        "datasetId": {
          "description": "Required. A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.",
          "type": "string"
        },
        "projectId": {
          "description": "Optional. The ID of the project containing this dataset.",
          "type": "string"
        }
      }
    }
  },
  "documentationLink": "https://cloud.google.com/solutions/migration/dw2bq/dw-bq-migration-overview",
  "fullyEncodeReservedExpansion": true,
  "protocol": "rest",
  "basePath": "",
  "mtlsRootUrl": "https://bigquerymigration.mtls.googleapis.com/",
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "description": "Data format for response.",
      "default": "json",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "quotaUser": {
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query"
    }
  }
}
