{
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "name": "bigquerymigration",
  "revision": "20260622",
  "ownerDomain": "google.com",
  "servicePath": "",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "resources": {
            "workflows": {
              "methods": {
                "delete": {
                  "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}",
                  "path": "v2/{+name}",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                      "location": "path",
                      "required": true
                    }
                  },
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "bigquerymigration.projects.locations.workflows.delete",
                  "httpMethod": "DELETE",
                  "description": "Deletes a migration workflow by name.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/workflows",
                  "path": "v2/{+parent}/workflows",
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "Required. The project and location of the migration workflows to list. Example: `projects/123/locations/us`"
                    },
                    "readMask": {
                      "description": "The list of fields to be retrieved.",
                      "location": "query",
                      "format": "google-fieldmask",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The maximum number of migration workflows to return. The service may return fewer than this number.",
                      "location": "query",
                      "format": "int32",
                      "type": "integer"
                    },
                    "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"
                    }
                  },
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2ListMigrationWorkflowsResponse"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "id": "bigquerymigration.projects.locations.workflows.list",
                  "httpMethod": "GET",
                  "description": "Lists previously created migration workflow.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "create": {
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. The name of the project to which this migration workflow belongs. Example: `projects/foo/locations/bar`",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true
                    }
                  },
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2MigrationWorkflow"
                  },
                  "path": "v2/{+parent}/workflows",
                  "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/workflows",
                  "request": {
                    "$ref": "GoogleCloudBigqueryMigrationV2MigrationWorkflow"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "POST",
                  "description": "Creates a migration workflow.",
                  "id": "bigquerymigration.projects.locations.workflows.create"
                },
                "start": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "POST",
                  "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.",
                  "id": "bigquerymigration.projects.locations.workflows.start",
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v2/{+name}:start",
                  "parameters": {
                    "name": {
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                      "location": "path",
                      "required": true
                    }
                  },
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}:start",
                  "request": {
                    "$ref": "GoogleCloudBigqueryMigrationV2StartMigrationWorkflowRequest"
                  }
                },
                "get": {
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "readMask": {
                      "type": "string",
                      "format": "google-fieldmask",
                      "description": "The list of fields to be retrieved.",
                      "location": "query"
                    },
                    "name": {
                      "type": "string",
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                      "location": "path",
                      "required": true
                    }
                  },
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2MigrationWorkflow"
                  },
                  "path": "v2/{+name}",
                  "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "description": "Gets a previously created migration workflow.",
                  "id": "bigquerymigration.projects.locations.workflows.get"
                }
              },
              "resources": {
                "subtasks": {
                  "methods": {
                    "get": {
                      "id": "bigquerymigration.projects.locations.workflows.subtasks.get",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "GET",
                      "description": "Gets a previously created migration subtask.",
                      "path": "v2/{+name}",
                      "parameters": {
                        "name": {
                          "description": "Required. The unique identifier for the migration subtask. Example: `projects/123/locations/us/workflows/1234/subtasks/543`",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+/subtasks/[^/]+$",
                          "location": "path",
                          "required": true
                        },
                        "readMask": {
                          "format": "google-fieldmask",
                          "type": "string",
                          "description": "Optional. The list of fields to be retrieved.",
                          "location": "query"
                        }
                      },
                      "response": {
                        "$ref": "GoogleCloudBigqueryMigrationV2MigrationSubtask"
                      },
                      "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/subtasks/{subtasksId}",
                      "parameterOrder": [
                        "name"
                      ]
                    },
                    "list": {
                      "path": "v2/{+parent}/subtasks",
                      "parameters": {
                        "parent": {
                          "type": "string",
                          "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
                        },
                        "readMask": {
                          "type": "string",
                          "format": "google-fieldmask",
                          "description": "Optional. The list of fields to be retrieved.",
                          "location": "query"
                        },
                        "pageSize": {
                          "format": "int32",
                          "type": "integer",
                          "description": "Optional. The maximum number of migration tasks to return. The service may return fewer than this number.",
                          "location": "query"
                        },
                        "pageToken": {
                          "type": "string",
                          "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"
                        },
                        "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"
                        }
                      },
                      "response": {
                        "$ref": "GoogleCloudBigqueryMigrationV2ListMigrationSubtasksResponse"
                      },
                      "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/subtasks",
                      "parameterOrder": [
                        "parent"
                      ],
                      "id": "bigquerymigration.projects.locations.workflows.subtasks.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "GET",
                      "description": "Lists previously created migration subtasks."
                    }
                  }
                }
              }
            }
          },
          "methods": {
            "translateQuery": {
              "httpMethod": "POST",
              "description": "Translates input queries from source dialects to GoogleSQL.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "bigquerymigration.projects.locations.translateQuery",
              "parameterOrder": [
                "parent"
              ],
              "flatPath": "v2/projects/{projectsId}/locations/{locationsId}:translateQuery",
              "request": {
                "$ref": "GoogleCloudBigqueryMigrationV2TranslateQueryRequest"
              },
              "path": "v2/{+parent}:translateQuery",
              "parameters": {
                "parent": {
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "description": "Required. The name of the project to which this translation request belongs. Example: `projects/foo/locations/bar`"
                }
              },
              "response": {
                "$ref": "GoogleCloudBigqueryMigrationV2TranslateQueryResponse"
              }
            }
          }
        }
      }
    }
  },
  "id": "bigquerymigration:v2",
  "title": "BigQuery Migration API",
  "discoveryVersion": "v1",
  "kind": "discovery#restDescription",
  "schemas": {
    "GoogleRpcErrorInfo": {
      "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": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "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."
        }
      },
      "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\" } }",
      "id": "GoogleRpcErrorInfo",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter": {
      "description": "The filter applied to fields of translation details.",
      "properties": {
        "inputFileExclusionPrefixes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of prefixes used to exclude processing for input files."
        }
      },
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2AzureSynapseDialect": {
      "id": "GoogleCloudBigqueryMigrationV2AzureSynapseDialect",
      "type": "object",
      "properties": {},
      "description": "The dialect definition for Azure Synapse."
    },
    "GoogleCloudBigqueryMigrationV2SQLiteDialect": {
      "description": "The dialect definition for SQLite.",
      "properties": {},
      "id": "GoogleCloudBigqueryMigrationV2SQLiteDialect",
      "type": "object"
    },
    "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.",
      "properties": {
        "bounds": {
          "description": "The values must be monotonically increasing.",
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "id": "GoogleApiDistributionBucketOptionsExplicit",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2Literal": {
      "id": "GoogleCloudBigqueryMigrationV2Literal",
      "type": "object",
      "properties": {
        "literalBytes": {
          "description": "Literal byte data.",
          "format": "byte",
          "type": "string"
        },
        "relativePath": {
          "description": "Required. The identifier of the literal entry.",
          "type": "string"
        },
        "literalString": {
          "description": "Literal string data.",
          "type": "string"
        }
      },
      "description": "Literal data."
    },
    "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.",
      "properties": {
        "explicitBuckets": {
          "description": "The explicit buckets.",
          "$ref": "GoogleApiDistributionBucketOptionsExplicit"
        },
        "linearBuckets": {
          "description": "The linear bucket.",
          "$ref": "GoogleApiDistributionBucketOptionsLinear"
        },
        "exponentialBuckets": {
          "description": "The exponential buckets.",
          "$ref": "GoogleApiDistributionBucketOptionsExponential"
        }
      },
      "id": "GoogleApiDistributionBucketOptions",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2ResourceErrorDetail": {
      "properties": {
        "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`.",
          "format": "int32",
          "type": "integer"
        },
        "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": "GoogleCloudBigqueryMigrationV2ErrorDetail"
          }
        }
      },
      "description": "Provides details for errors and the corresponding resources.",
      "id": "GoogleCloudBigqueryMigrationV2ResourceErrorDetail",
      "type": "object"
    },
    "GoogleRpcResourceInfo": {
      "id": "GoogleRpcResourceInfo",
      "type": "object",
      "description": "Describes the resource that is being accessed.",
      "properties": {
        "resourceType": {
          "type": "string",
          "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\"."
        },
        "owner": {
          "description": "The owner of the resource (optional). For example, \"user:\" or \"project:\".",
          "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"
        },
        "description": {
          "type": "string",
          "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."
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions": {
      "properties": {
        "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": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "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)."
        },
        "projectDataset": {
          "description": "Specifies the project and dataset in BigQuery that will be used for external table creation during the translation.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaDatasetReference"
        }
      },
      "description": "BTEQ translation task related settings.",
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2TargetSpec": {
      "id": "GoogleCloudBigqueryMigrationV2TargetSpec",
      "type": "object",
      "description": "Represents one path to the location that holds target data.",
      "properties": {
        "relativePath": {
          "type": "string",
          "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`."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2SuggestionConfig": {
      "description": "The configuration for the suggestion if requested as a target type.",
      "properties": {
        "skipSuggestionSteps": {
          "description": "The list of suggestion steps to skip.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2SuggestionStep"
          }
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2SuggestionConfig",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2ErrorDetail": {
      "properties": {
        "errorInfo": {
          "description": "Required. Describes the cause of the error with structured detail.",
          "$ref": "GoogleRpcErrorInfo"
        },
        "location": {
          "description": "Optional. The exact location within the resource (if applicable).",
          "$ref": "GoogleCloudBigqueryMigrationV2ErrorLocation"
        }
      },
      "description": "Provides details for errors, e.g. issues that where encountered when processing a subtask.",
      "id": "GoogleCloudBigqueryMigrationV2ErrorDetail",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2NetezzaDialect": {
      "properties": {},
      "description": "The dialect definition for Netezza.",
      "id": "GoogleCloudBigqueryMigrationV2NetezzaDialect",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2TimeSeries": {
      "description": "The metrics object for a SubTask.",
      "properties": {
        "metric": {
          "type": "string",
          "description": "Required. The name of the metric. If the metric is not known by the service yet, it will be auto-created."
        },
        "points": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2Point"
          },
          "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`."
        },
        "valueType": {
          "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."
          ],
          "description": "Required. The value type of the time series.",
          "enum": [
            "VALUE_TYPE_UNSPECIFIED",
            "BOOL",
            "INT64",
            "DOUBLE",
            "STRING",
            "DISTRIBUTION",
            "MONEY"
          ]
        },
        "metricKind": {
          "type": "string",
          "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`.",
          "enum": [
            "METRIC_KIND_UNSPECIFIED",
            "GAUGE",
            "DELTA",
            "CUMULATIVE"
          ],
          "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."
          ]
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2TimeSeries",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2Point": {
      "id": "GoogleCloudBigqueryMigrationV2Point",
      "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": "GoogleCloudBigqueryMigrationV2TimeInterval"
        },
        "value": {
          "description": "The value of the data point.",
          "$ref": "GoogleCloudBigqueryMigrationV2TypedValue"
        }
      },
      "description": "A single data point in a time series."
    },
    "GoogleCloudBigqueryMigrationV2ObjectNameMapping": {
      "id": "GoogleCloudBigqueryMigrationV2ObjectNameMapping",
      "type": "object",
      "properties": {
        "source": {
          "description": "The name of the object in source that is being mapped.",
          "$ref": "GoogleCloudBigqueryMigrationV2NameMappingKey"
        },
        "target": {
          "description": "The desired target name of the object that is being mapped.",
          "$ref": "GoogleCloudBigqueryMigrationV2NameMappingValue"
        }
      },
      "description": "Represents a key-value pair of NameMappingKey to NameMappingValue to represent the mapping of SQL names from the input value to desired output."
    },
    "GoogleCloudBigqueryMigrationV2PrestoDialect": {
      "id": "GoogleCloudBigqueryMigrationV2PrestoDialect",
      "type": "object",
      "properties": {},
      "description": "The dialect definition for Presto."
    },
    "GoogleCloudBigqueryMigrationV2BigQueryDialect": {
      "properties": {},
      "description": "The dialect definition for BigQuery.",
      "id": "GoogleCloudBigqueryMigrationV2BigQueryDialect",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2SourceTargetMapping": {
      "properties": {
        "targetSpec": {
          "description": "The target SQL or the path for it.",
          "$ref": "GoogleCloudBigqueryMigrationV2TargetSpec"
        },
        "sourceSpec": {
          "description": "The source SQL or the path to it.",
          "$ref": "GoogleCloudBigqueryMigrationV2SourceSpec"
        }
      },
      "description": "Represents one mapping from a source SQL to a target SQL.",
      "id": "GoogleCloudBigqueryMigrationV2SourceTargetMapping",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2TranslationResultDetails": {
      "description": "Translation details like metrics, warning/error records.",
      "properties": {
        "translationMetrics": {
          "type": "object",
          "additionalProperties": {
            "format": "int32",
            "type": "integer"
          },
          "description": "Translation metrics. E.g., Compiler_Clean: 5, Compiler_BestEffort: 2, Emitter_Clean: 1,Emitter_Error: 3, etc."
        },
        "reportRecords": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2TranslationReportRecord"
          },
          "description": "Translation details about warning/error records."
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2TranslationResultDetails",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2SparkSQLDialect": {
      "properties": {},
      "description": "The dialect definition for SparkSQL.",
      "id": "GoogleCloudBigqueryMigrationV2SparkSQLDialect",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2OracleDialect": {
      "id": "GoogleCloudBigqueryMigrationV2OracleDialect",
      "type": "object",
      "properties": {},
      "description": "The dialect definition for Oracle."
    },
    "GoogleCloudBigqueryMigrationV2RedshiftDialect": {
      "id": "GoogleCloudBigqueryMigrationV2RedshiftDialect",
      "type": "object",
      "properties": {},
      "description": "The dialect definition for Redshift."
    },
    "GoogleCloudBigqueryMigrationV2MySQLDialect": {
      "properties": {},
      "description": "The dialect definition for MySQL.",
      "id": "GoogleCloudBigqueryMigrationV2MySQLDialect",
      "type": "object"
    },
    "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); }",
      "properties": {},
      "id": "GoogleProtobufEmpty",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2TranslationConfigDetails": {
      "id": "GoogleCloudBigqueryMigrationV2TranslationConfigDetails",
      "type": "object",
      "properties": {
        "sourceDialect": {
          "description": "The dialect of the input files.",
          "$ref": "GoogleCloudBigqueryMigrationV2Dialect"
        },
        "gcsSourcePath": {
          "description": "The Cloud Storage path for a directory of files to translate in a task.",
          "type": "string"
        },
        "nameMappingList": {
          "description": "The mapping of objects to their desired output names in list form.",
          "$ref": "GoogleCloudBigqueryMigrationV2ObjectNameMappingList"
        },
        "targetDialect": {
          "description": "The target dialect for the engine to translate the input to.",
          "$ref": "GoogleCloudBigqueryMigrationV2Dialect"
        },
        "requestSource": {
          "type": "string",
          "description": "The indicator to show translation request initiator."
        },
        "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"
          }
        },
        "gcsTargetPath": {
          "description": "The Cloud Storage path to write back the corresponding input files to.",
          "type": "string"
        },
        "sourceEnv": {
          "description": "The default source environment values for the translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2SourceEnv"
        }
      },
      "description": "The translation config to capture necessary settings for a translation task and subtask."
    },
    "GoogleCloudBigqueryMigrationV2TeradataDialect": {
      "properties": {
        "mode": {
          "enumDescriptions": [
            "Unspecified mode.",
            "Teradata SQL mode.",
            "BTEQ mode (which includes SQL)."
          ],
          "description": "Which Teradata sub-dialect mode the user specifies.",
          "enum": [
            "MODE_UNSPECIFIED",
            "SQL",
            "BTEQ"
          ],
          "type": "string"
        }
      },
      "description": "The dialect definition for Teradata.",
      "id": "GoogleCloudBigqueryMigrationV2TeradataDialect",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2VerticaDialect": {
      "id": "GoogleCloudBigqueryMigrationV2VerticaDialect",
      "type": "object",
      "description": "The dialect definition for Vertica.",
      "properties": {}
    },
    "GoogleApiDistributionRange": {
      "description": "The range of the population values.",
      "properties": {
        "max": {
          "description": "The maximum of the population values.",
          "format": "double",
          "type": "number"
        },
        "min": {
          "description": "The minimum of the population values.",
          "format": "double",
          "type": "number"
        }
      },
      "id": "GoogleApiDistributionRange",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2TranslateQueryResponse": {
      "id": "GoogleCloudBigqueryMigrationV2TranslateQueryResponse",
      "type": "object",
      "properties": {
        "translationJob": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Immutable. The unique identifier for the SQL translation job. Example: `projects/123/locations/us/translation/1234`"
        },
        "translatedQuery": {
          "type": "string",
          "description": "The translated result. It may contain error/warning messages as comments."
        },
        "translationResultDetails": {
          "description": "The details of the translation results.",
          "$ref": "GoogleCloudBigqueryMigrationV2TranslationResultDetails"
        }
      },
      "description": "The response of translating a SQL query to GoogleSQL."
    },
    "GoogleCloudBigqueryMigrationV2SuggestionStep": {
      "properties": {
        "suggestionType": {
          "type": "string",
          "description": "The type of suggestion.",
          "enum": [
            "SUGGESTION_TYPE_UNSPECIFIED",
            "QUERY_CUSTOMIZATION",
            "TRANSLATION_EXPLANATION"
          ],
          "enumDescriptions": [
            "Suggestion type unspecified.",
            "Query customization.",
            "Translation explanation."
          ]
        },
        "rewriteTarget": {
          "type": "string",
          "description": "The rewrite target.",
          "enum": [
            "REWRITE_TARGET_UNSPECIFIED",
            "SOURCE_SQL",
            "TARGET_SQL"
          ],
          "enumDescriptions": [
            "Rewrite target unspecified.",
            "Source SQL.",
            "Target SQL."
          ]
        }
      },
      "description": "Suggestion step to skip.",
      "id": "GoogleCloudBigqueryMigrationV2SuggestionStep",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2MigrationTaskResult": {
      "properties": {
        "translationTaskResult": {
          "description": "Details specific to translation task types.",
          "$ref": "GoogleCloudBigqueryMigrationV2TranslationTaskResult"
        }
      },
      "description": "The migration task result.",
      "id": "GoogleCloudBigqueryMigrationV2MigrationTaskResult",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2ListMigrationWorkflowsResponse": {
      "id": "GoogleCloudBigqueryMigrationV2ListMigrationWorkflowsResponse",
      "type": "object",
      "properties": {
        "migrationWorkflows": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2MigrationWorkflow"
          },
          "description": "The migration workflows for the specified project / location."
        },
        "nextPageToken": {
          "type": "string",
          "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."
        }
      },
      "description": "Response object for a `ListMigrationWorkflows` call."
    },
    "GoogleCloudBigqueryMigrationV2AssessmentFeatureHandle": {
      "description": "User-definable feature flags for assessment tasks.",
      "properties": {
        "addShareableDataset": {
          "type": "boolean",
          "description": "Optional. Whether to create a dataset containing non-PII data in addition to the output dataset."
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2AssessmentFeatureHandle",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2AssessmentTaskDetails": {
      "properties": {
        "inputPath": {
          "description": "Required. The Cloud Storage path for assessment input files.",
          "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": "GoogleCloudBigqueryMigrationV2AssessmentFeatureHandle"
        },
        "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"
        },
        "outputDataset": {
          "type": "string",
          "description": "Required. The BigQuery dataset for output."
        }
      },
      "description": "Assessment task config.",
      "id": "GoogleCloudBigqueryMigrationV2AssessmentTaskDetails",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2ObjectNameMappingList": {
      "description": "Represents a map of name mappings using a list of key:value proto messages of existing name to desired output name.",
      "properties": {
        "nameMap": {
          "description": "The elements of the object name map.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2ObjectNameMapping"
          }
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2ObjectNameMappingList",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2TimeInterval": {
      "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.",
      "properties": {
        "startTime": {
          "format": "google-datetime",
          "type": "string",
          "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."
        },
        "endTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Required. The end of the time interval."
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2TimeInterval",
      "type": "object"
    },
    "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.",
      "properties": {
        "count": {
          "format": "int64",
          "type": "string",
          "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."
        },
        "mean": {
          "description": "The arithmetic mean of the values in the population. If `count` is zero then this field must be zero.",
          "format": "double",
          "type": "number"
        },
        "exemplars": {
          "description": "Must be in increasing order of `value` field.",
          "type": "array",
          "items": {
            "$ref": "GoogleApiDistributionExemplar"
          }
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "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": {
          "type": "array",
          "items": {
            "format": "int64",
            "type": "string"
          },
          "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)."
        }
      },
      "id": "GoogleApiDistribution",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2SourceEnv": {
      "description": "Represents the default source environment values for the translation.",
      "properties": {
        "metadataStoreDataset": {
          "type": "string",
          "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."
        },
        "defaultDatabase": {
          "description": "The default database name to fully qualify SQL objects when their database name is missing.",
          "type": "string"
        },
        "schemaSearchPath": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The schema search path. When SQL objects are missing schema name, translation engine will search through this list to find the value."
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2SourceEnv",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2MigrationSubtask": {
      "properties": {
        "createTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. Time when the subtask was created.",
          "readOnly": true
        },
        "processingError": {
          "readOnly": true,
          "description": "Output only. An explanation that may be populated when the task is in FAILED state.",
          "$ref": "GoogleRpcErrorInfo"
        },
        "metrics": {
          "readOnly": true,
          "description": "Output only. The metrics for the subtask.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2TimeSeries"
          }
        },
        "resourceErrorDetails": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2ResourceErrorDetail"
          },
          "readOnly": true,
          "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."
        },
        "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": {
          "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"
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. The current state of the subtask."
        },
        "name": {
          "type": "string",
          "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
        },
        "taskId": {
          "description": "The unique ID of the task to which this subtask belongs.",
          "type": "string"
        },
        "lastUpdateTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. Time when the subtask was last updated."
        },
        "resourceErrorCount": {
          "format": "int32",
          "type": "integer",
          "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
        }
      },
      "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.",
      "id": "GoogleCloudBigqueryMigrationV2MigrationSubtask",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2GreenplumDialect": {
      "description": "The dialect definition for Greenplum.",
      "properties": {},
      "id": "GoogleCloudBigqueryMigrationV2GreenplumDialect",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2TypedValue": {
      "properties": {
        "boolValue": {
          "description": "A Boolean value: `true` or `false`.",
          "type": "boolean"
        },
        "stringValue": {
          "type": "string",
          "description": "A variable-length string value."
        },
        "doubleValue": {
          "format": "double",
          "type": "number",
          "description": "A 64-bit double-precision floating-point number. Its magnitude is approximately `+/-10^(+/-300)` and it has 16 significant digits of precision."
        },
        "int64Value": {
          "description": "A 64-bit integer. Its range is approximately `+/-9.2x10^18`.",
          "format": "int64",
          "type": "string"
        },
        "distributionValue": {
          "description": "A distribution value.",
          "$ref": "GoogleApiDistribution"
        }
      },
      "description": "A single strongly-typed value.",
      "id": "GoogleCloudBigqueryMigrationV2TypedValue",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2TranslationTaskResult": {
      "id": "GoogleCloudBigqueryMigrationV2TranslationTaskResult",
      "type": "object",
      "properties": {
        "consoleUri": {
          "description": "The Cloud Console URI for the migration workflow.",
          "type": "string"
        },
        "translatedLiterals": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2Literal"
          },
          "description": "The list of the translated literals."
        },
        "reportLogMessages": {
          "description": "The records from the aggregate CSV report for a migration workflow.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2GcsReportLogMessage"
          }
        }
      },
      "description": "Translation specific result details from the migration task."
    },
    "GoogleCloudBigqueryMigrationV2SourceSpec": {
      "id": "GoogleCloudBigqueryMigrationV2SourceSpec",
      "type": "object",
      "properties": {
        "literal": {
          "description": "Source literal.",
          "$ref": "GoogleCloudBigqueryMigrationV2Literal"
        },
        "baseUri": {
          "type": "string",
          "description": "The base URI for all files to be read in as sources for translation."
        },
        "gcsFilePath": {
          "type": "string",
          "description": "The path to a single source file in Cloud Storage."
        },
        "encoding": {
          "description": "Optional. The optional field to specify the encoding of the sql bytes.",
          "type": "string"
        }
      },
      "description": "Represents one path to the location that holds source data."
    },
    "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)).",
      "properties": {
        "numFiniteBuckets": {
          "description": "Must be greater than 0.",
          "format": "int32",
          "type": "integer"
        },
        "growthFactor": {
          "type": "number",
          "format": "double",
          "description": "Must be greater than 1."
        },
        "scale": {
          "type": "number",
          "format": "double",
          "description": "Must be greater than 0."
        }
      },
      "id": "GoogleApiDistributionBucketOptionsExponential",
      "type": "object"
    },
    "GoogleApiDistributionExemplar": {
      "id": "GoogleApiDistributionExemplar",
      "type": "object",
      "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.",
      "properties": {
        "value": {
          "type": "number",
          "format": "double",
          "description": "Value of the exemplar point. This value determines to which bucket the exemplar belongs."
        },
        "timestamp": {
          "type": "string",
          "format": "google-datetime",
          "description": "The observation (sampling) time of the above value."
        },
        "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."
            }
          }
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2NameMappingKey": {
      "properties": {
        "database": {
          "type": "string",
          "description": "The database name (BigQuery project ID equivalent in the source data warehouse)."
        },
        "type": {
          "description": "The type of object that is being mapped.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "DATABASE",
            "SCHEMA",
            "RELATION",
            "ATTRIBUTE",
            "RELATION_ALIAS",
            "ATTRIBUTE_ALIAS",
            "FUNCTION"
          ],
          "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."
          ],
          "type": "string"
        },
        "attribute": {
          "type": "string",
          "description": "The attribute name (BigQuery column equivalent in the source data warehouse)."
        },
        "schema": {
          "type": "string",
          "description": "The schema name (BigQuery dataset equivalent in the source data warehouse)."
        },
        "relation": {
          "description": "The relation name (BigQuery table or view equivalent in the source data warehouse).",
          "type": "string"
        }
      },
      "description": "The potential components of a full name mapping that will be mapped during translation in the source data warehouse.",
      "id": "GoogleCloudBigqueryMigrationV2NameMappingKey",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationTaskDetails": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationTaskDetails",
      "type": "object",
      "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.",
      "properties": {
        "fileEncoding": {
          "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."
          ],
          "description": "The file encoding type.",
          "enum": [
            "FILE_ENCODING_UNSPECIFIED",
            "UTF_8",
            "ISO_8859_1",
            "US_ASCII",
            "UTF_16",
            "UTF_16LE",
            "UTF_16BE"
          ],
          "type": "string"
        },
        "filePaths": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping"
          },
          "description": "Cloud Storage files to be processed for translation."
        },
        "schemaPath": {
          "type": "string",
          "description": "The Cloud Storage path to DDL files as table schema to assist semantic translation."
        },
        "translationExceptionTable": {
          "type": "string",
          "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."
        },
        "teradataOptions": {
          "description": "The Teradata SQL specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions"
        },
        "filter": {
          "description": "The filter applied to translation details.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter"
        },
        "bteqOptions": {
          "description": "The BTEQ specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions"
        },
        "outputPath": {
          "description": "The Cloud Storage path for translation output files.",
          "type": "string"
        },
        "inputPath": {
          "type": "string",
          "description": "The Cloud Storage path for translation input files."
        },
        "identifierSettings": {
          "description": "The settings for SQL identifiers.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings"
        },
        "specialTokenMap": {
          "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"
            ]
          },
          "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."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2SnowflakeDialect": {
      "id": "GoogleCloudBigqueryMigrationV2SnowflakeDialect",
      "type": "object",
      "description": "The dialect definition for Snowflake.",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2StartMigrationWorkflowRequest": {
      "id": "GoogleCloudBigqueryMigrationV2StartMigrationWorkflowRequest",
      "type": "object",
      "properties": {},
      "description": "A request to start a previously created migration workflow."
    },
    "GoogleCloudBigqueryMigrationV2SQLServerDialect": {
      "id": "GoogleCloudBigqueryMigrationV2SQLServerDialect",
      "type": "object",
      "description": "The dialect definition for SQL Server.",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2DB2Dialect": {
      "id": "GoogleCloudBigqueryMigrationV2DB2Dialect",
      "type": "object",
      "properties": {},
      "description": "The dialect definition for DB2."
    },
    "GoogleCloudBigqueryMigrationV2GcsReportLogMessage": {
      "id": "GoogleCloudBigqueryMigrationV2GcsReportLogMessage",
      "type": "object",
      "description": "A record in the aggregate CSV report for a migration workflow",
      "properties": {
        "effect": {
          "type": "string",
          "description": "Effect of the error/warning. Example: COMPATIBILITY"
        },
        "filename": {
          "description": "The file name in which the error occurred",
          "type": "string"
        },
        "message": {
          "description": "Detailed message of the record.",
          "type": "string"
        },
        "sourceScriptLine": {
          "type": "integer",
          "format": "int32",
          "description": "Specifies the row from the source text where the error occurred (0 based, -1 for messages without line location). Example: 2"
        },
        "scriptContext": {
          "type": "string",
          "description": "The script context (obfuscated) in which the error occurred"
        },
        "action": {
          "type": "string",
          "description": "Category of the error/warning. Example: SyntaxError"
        },
        "filePath": {
          "type": "string",
          "description": "The file path in which the error occurred"
        },
        "category": {
          "description": "Category of the error/warning. Example: SyntaxError",
          "type": "string"
        },
        "severity": {
          "type": "string",
          "description": "Severity of the translation record."
        },
        "objectName": {
          "description": "Name of the affected object in the log message.",
          "type": "string"
        },
        "sourceScriptColumn": {
          "type": "integer",
          "format": "int32",
          "description": "Specifies the column from the source texts where the error occurred. (0 based, -1 for messages without column location) example: 6"
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings": {
      "description": "Settings related to SQL identifiers.",
      "properties": {
        "outputIdentifierCase": {
          "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."
          ],
          "description": "The setting to control output queries' identifier case.",
          "enum": [
            "IDENTIFIER_CASE_UNSPECIFIED",
            "ORIGINAL",
            "UPPER",
            "LOWER"
          ]
        },
        "identifierRewriteMode": {
          "enumDescriptions": [
            "SQL Identifier rewrite mode is unspecified.",
            "SQL identifiers won't be rewrite.",
            "All SQL identifiers will be rewrite."
          ],
          "description": "Specifies the rewrite mode for SQL identifiers.",
          "enum": [
            "IDENTIFIER_REWRITE_MODE_UNSPECIFIED",
            "NONE",
            "REWRITE_ALL"
          ],
          "type": "string"
        }
      },
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2SourceEnvironment": {
      "id": "GoogleCloudBigqueryMigrationV2SourceEnvironment",
      "type": "object",
      "description": "Represents the default source environment values for the translation.",
      "properties": {
        "defaultDatabase": {
          "type": "string",
          "description": "The default database name to fully qualify SQL objects when their database name is missing."
        },
        "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": {
          "type": "string",
          "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."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2MigrationWorkflow": {
      "properties": {
        "tasks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "GoogleCloudBigqueryMigrationV2MigrationTask"
          },
          "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."
        },
        "lastUpdateTime": {
          "readOnly": true,
          "description": "Output only. Time when the workflow was last updated.",
          "type": "string",
          "format": "google-datetime"
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Immutable. Identifier. The unique identifier for the migration workflow. The ID is server-generated. Example: `projects/123/locations/us/workflows/345`"
        },
        "createTime": {
          "description": "Output only. Time when the workflow was created.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "RUNNING",
            "PAUSED",
            "COMPLETED"
          ],
          "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."
          ],
          "description": "Output only. That status of the workflow.",
          "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"
        }
      },
      "description": "A migration workflow which specifies what needs to be done for an EDW migration.",
      "id": "GoogleCloudBigqueryMigrationV2MigrationWorkflow",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2Dialect": {
      "id": "GoogleCloudBigqueryMigrationV2Dialect",
      "type": "object",
      "description": "The possible dialect options for translation.",
      "properties": {
        "oracleDialect": {
          "description": "The Oracle dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2OracleDialect"
        },
        "db2Dialect": {
          "description": "DB2 dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2DB2Dialect"
        },
        "sqliteDialect": {
          "description": "SQLite dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2SQLiteDialect"
        },
        "greenplumDialect": {
          "description": "Greenplum dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2GreenplumDialect"
        },
        "netezzaDialect": {
          "description": "The Netezza dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2NetezzaDialect"
        },
        "prestoDialect": {
          "description": "The Presto dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2PrestoDialect"
        },
        "snowflakeDialect": {
          "description": "The Snowflake dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2SnowflakeDialect"
        },
        "sqlServerDialect": {
          "description": "The SQL Server dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2SQLServerDialect"
        },
        "bigqueryDialect": {
          "description": "The BigQuery dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2BigQueryDialect"
        },
        "sparksqlDialect": {
          "description": "The SparkSQL dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2SparkSQLDialect"
        },
        "azureSynapseDialect": {
          "description": "The Azure Synapse dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2AzureSynapseDialect"
        },
        "mysqlDialect": {
          "description": "The MySQL dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2MySQLDialect"
        },
        "teradataDialect": {
          "description": "The Teradata dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2TeradataDialect"
        },
        "postgresqlDialect": {
          "description": "The Postgresql dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2PostgresqlDialect"
        },
        "redshiftDialect": {
          "description": "The Redshift dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2RedshiftDialect"
        },
        "hiveqlDialect": {
          "description": "The HiveQL dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2HiveQLDialect"
        },
        "verticaDialect": {
          "description": "The Vertica dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2VerticaDialect"
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaDatasetReference": {
      "properties": {
        "projectId": {
          "description": "Optional. The ID of the project containing this dataset.",
          "type": "string"
        },
        "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"
        }
      },
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaDatasetReference",
      "type": "object"
    },
    "GoogleApiDistributionBucketOptionsLinear": {
      "id": "GoogleApiDistributionBucketOptionsLinear",
      "type": "object",
      "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)).",
      "properties": {
        "width": {
          "format": "double",
          "type": "number",
          "description": "Must be greater than 0."
        },
        "numFiniteBuckets": {
          "description": "Must be greater than 0.",
          "format": "int32",
          "type": "integer"
        },
        "offset": {
          "description": "Lower bound of the first bucket.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2ErrorLocation": {
      "id": "GoogleCloudBigqueryMigrationV2ErrorLocation",
      "type": "object",
      "description": "Holds information about where the error is located.",
      "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"
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions",
      "type": "object",
      "properties": {},
      "description": "Teradata SQL specific translation task related settings."
    },
    "GoogleCloudBigqueryMigrationV2MigrationTask": {
      "properties": {
        "processingError": {
          "readOnly": true,
          "description": "Output only. An explanation that may be populated when the task is in FAILED state.",
          "$ref": "GoogleRpcErrorInfo"
        },
        "metrics": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2TimeSeries"
          },
          "description": "Output only. The metrics for the task.",
          "readOnly": true
        },
        "translationConfigDetails": {
          "description": "Task configuration for CW Batch/Offline SQL Translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2TranslationConfigDetails"
        },
        "createTime": {
          "description": "Output only. Time when the task was created.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "taskResult": {
          "description": "Output only. The result of the task.",
          "$ref": "GoogleCloudBigqueryMigrationV2MigrationTaskResult",
          "readOnly": true
        },
        "resourceErrorDetails": {
          "readOnly": true,
          "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.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2ResourceErrorDetail"
          }
        },
        "state": {
          "description": "Output only. The current state of the task.",
          "readOnly": true,
          "type": "string",
          "enum": [
            "STATE_UNSPECIFIED",
            "PENDING",
            "ORCHESTRATING",
            "RUNNING",
            "PAUSED",
            "SUCCEEDED",
            "FAILED"
          ],
          "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."
          ]
        },
        "assessmentTaskDetails": {
          "description": "Task configuration for Assessment.",
          "$ref": "GoogleCloudBigqueryMigrationV2AssessmentTaskDetails"
        },
        "lastUpdateTime": {
          "readOnly": true,
          "description": "Output only. Time when the task was last updated.",
          "type": "string",
          "format": "google-datetime"
        },
        "totalProcessingErrorCount": {
          "format": "int32",
          "type": "integer",
          "description": "Output only. Count of all the processing errors in this task and its subtasks.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Output only. Immutable. The unique identifier for the migration task. The ID is server-generated.",
          "readOnly": true
        },
        "totalResourceErrorCount": {
          "format": "int32",
          "type": "integer",
          "description": "Output only. Count of all the resource errors in this task and its subtasks.",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "The type of the task. This must be one of the supported task types. Assessment: - `Assessment_Hive` - Assessment for Hive. - `Assessment_Redshift` - Assessment for Redshift. - `Assessment_Snowflake` - Assessment for Snowflake. - `Assessment_Teradata_v2` - Assessment for Teradata. - `Assessment_Oracle` - Assessment for Oracle. - `Assessment_Hadoop` - Assessment for Hadoop. - `Assessment_Informatica` - Assessment for Informatica. Translation: See [Supported Task Types](https://docs.cloud.google.com/bigquery/docs/api-sql-translator#supported_task_types) for a list of supported task types."
        },
        "resourceErrorCount": {
          "readOnly": true,
          "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`.",
          "type": "integer",
          "format": "int32"
        },
        "translationDetails": {
          "description": "Task details for unified SQL Translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2TranslationDetails"
        }
      },
      "description": "A single task for a migration which has details about the configuration of the task.",
      "id": "GoogleCloudBigqueryMigrationV2MigrationTask",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2ListMigrationSubtasksResponse": {
      "id": "GoogleCloudBigqueryMigrationV2ListMigrationSubtasksResponse",
      "type": "object",
      "properties": {
        "migrationSubtasks": {
          "description": "The migration subtasks for the specified task.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2MigrationSubtask"
          }
        },
        "nextPageToken": {
          "type": "string",
          "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."
        }
      },
      "description": "Response object for a `ListMigrationSubtasks` call."
    },
    "GoogleCloudBigqueryMigrationV2TranslateQueryRequest": {
      "id": "GoogleCloudBigqueryMigrationV2TranslateQueryRequest",
      "type": "object",
      "properties": {
        "sourceDialect": {
          "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.",
            "Impala dialect."
          ],
          "description": "Required. The source SQL dialect of `queries`.",
          "enum": [
            "SQL_TRANSLATION_SOURCE_DIALECT_UNSPECIFIED",
            "TERADATA",
            "REDSHIFT",
            "ORACLE",
            "HIVEQL",
            "SPARKSQL",
            "SNOWFLAKE",
            "NETEZZA",
            "AZURESYNAPSE",
            "VERTICA",
            "SQLSERVER",
            "PRESTO",
            "POSTGRESQL",
            "MYSQL",
            "BTEQ",
            "SQLITE",
            "DB2",
            "GREENPLUM",
            "IMPALA"
          ]
        },
        "query": {
          "description": "Required. The query to be translated.",
          "type": "string"
        }
      },
      "description": "The request of translating a SQL query to GoogleSQL."
    },
    "GoogleCloudBigqueryMigrationV2TranslationDetails": {
      "id": "GoogleCloudBigqueryMigrationV2TranslationDetails",
      "type": "object",
      "description": "The translation details to capture the necessary settings for a translation job.",
      "properties": {
        "targetReturnLiterals": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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."
        },
        "sourceTargetMapping": {
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2SourceTargetMapping"
          },
          "description": "The mapping from source to target SQL."
        },
        "suggestionConfig": {
          "description": "The configuration for the suggestion if requested as a target type.",
          "$ref": "GoogleCloudBigqueryMigrationV2SuggestionConfig"
        },
        "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"
          }
        },
        "targetBaseUri": {
          "description": "The base URI for all writes to persistent storage.",
          "type": "string"
        },
        "sourceEnvironment": {
          "description": "The default source environment values for the translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2SourceEnvironment"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2HiveQLDialect": {
      "id": "GoogleCloudBigqueryMigrationV2HiveQLDialect",
      "type": "object",
      "properties": {},
      "description": "The dialect definition for HiveQL."
    },
    "GoogleCloudBigqueryMigrationV2PostgresqlDialect": {
      "properties": {},
      "description": "The dialect definition for Postgresql.",
      "id": "GoogleCloudBigqueryMigrationV2PostgresqlDialect",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping": {
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping",
      "type": "object",
      "properties": {
        "inputPath": {
          "type": "string",
          "description": "The Cloud Storage path for a file to translation in a subtask."
        },
        "outputPath": {
          "description": "The Cloud Storage path to write back the corresponding input file to.",
          "type": "string"
        }
      },
      "description": "Mapping between an input and output file to be translated in a subtask."
    },
    "GoogleCloudBigqueryMigrationV2TranslationReportRecord": {
      "properties": {
        "message": {
          "type": "string",
          "description": "Detailed message of the record."
        },
        "severity": {
          "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."
          ],
          "description": "Severity of the translation record.",
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "INFO",
            "WARNING",
            "ERROR"
          ],
          "type": "string"
        },
        "scriptLine": {
          "type": "integer",
          "format": "int32",
          "description": "Specifies the row from the source text where the error occurred (0 based). Example: 2"
        },
        "scriptColumn": {
          "type": "integer",
          "format": "int32",
          "description": "Specifies the column from the source texts where the error occurred. (0 based) example: 6"
        },
        "category": {
          "type": "string",
          "description": "Category of the error/warning. Example: SyntaxError"
        }
      },
      "description": "Details about a record.",
      "id": "GoogleCloudBigqueryMigrationV2TranslationReportRecord",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2NameMappingValue": {
      "id": "GoogleCloudBigqueryMigrationV2NameMappingValue",
      "type": "object",
      "properties": {
        "relation": {
          "type": "string",
          "description": "The relation name (BigQuery table or view equivalent in the target data warehouse)."
        },
        "database": {
          "description": "The database name (BigQuery project ID equivalent in the target data warehouse).",
          "type": "string"
        },
        "attribute": {
          "type": "string",
          "description": "The attribute name (BigQuery column equivalent in the target data warehouse)."
        },
        "schema": {
          "description": "The schema name (BigQuery dataset equivalent in the target data warehouse).",
          "type": "string"
        }
      },
      "description": "The potential components of a full name mapping that will be mapped during translation in the target data warehouse."
    },
    "GoogleCloudBigqueryMigrationTasksAssessmentV2alphaAssessmentTaskDetails": {
      "id": "GoogleCloudBigqueryMigrationTasksAssessmentV2alphaAssessmentTaskDetails",
      "type": "object",
      "properties": {
        "dataSource": {
          "description": "Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) from which the input data is extracted.",
          "type": "string"
        },
        "inputPath": {
          "description": "Required. The Cloud Storage path for assessment input files.",
          "type": "string"
        },
        "outputDataset": {
          "type": "string",
          "description": "Required. The BigQuery dataset for output."
        },
        "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"
        }
      },
      "description": "DEPRECATED! Use the AssessmentTaskDetails defined in com.google.cloud.bigquery.migration.v2alpha.AssessmentTaskDetails instead. Assessment task details."
    }
  },
  "rootUrl": "https://bigquerymigration.googleapis.com/",
  "version": "v2",
  "batchPath": "batch",
  "basePath": "",
  "parameters": {
    "key": {
      "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",
      "type": "string"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "location": "query",
      "type": "string",
      "description": "Data format for response."
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "$.xgafv": {
      "enum": [
        "1",
        "2"
      ],
      "location": "query",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "description": "V1 error format.",
      "type": "string"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean",
      "default": "true"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "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": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "mtlsRootUrl": "https://bigquerymigration.mtls.googleapis.com/",
  "protocol": "rest",
  "description": "The migration service, exposing apis for migration jobs operations, and agent management.",
  "version_module": true,
  "baseUrl": "https://bigquerymigration.googleapis.com/",
  "documentationLink": "https://cloud.google.com/solutions/migration/dw2bq/dw-bq-migration-overview",
  "auth": {
    "oauth2": {
      "scopes": {
        "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."
        }
      }
    }
  },
  "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"
    }
  ],
  "ownerName": "Google",
  "fullyEncodeReservedExpansion": true,
  "canonicalName": "Migration Service"
}
