{
  "name": "bigquerymigration",
  "ownerDomain": "google.com",
  "fullyEncodeReservedExpansion": true,
  "title": "BigQuery Migration API",
  "revision": "20260817",
  "schemas": {
    "GoogleCloudBigqueryMigrationV2alphaSourceTargetLocationMapping": {
      "properties": {
        "sourceLocation": {
          "description": "The path to the location of the source data.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceLocation"
        },
        "targetLocation": {
          "description": "The path to the location of the target data.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTargetLocation"
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceTargetLocationMapping",
      "type": "object",
      "description": "Represents one mapping from a source location path to an optional target location path."
    },
    "GoogleCloudBigqueryMigrationV2alphaMetadataCaching": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaMetadataCaching",
      "description": "Metadata caching settings.",
      "properties": {
        "maxCacheAge": {
          "description": "Optional. The maximum age of the metadata cache. If the cache is older than this value, the cache will be refreshed. A cache will not be kept for longer than 7 days. Providing no value or a value larger than 7 days will result in using the cache if available (i.e. the same as setting the value to 7 days). Setting the duration to 0 or a negative value will refresh the cache.",
          "format": "google-duration",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaGcsReportLogMessage": {
      "properties": {
        "scriptContext": {
          "description": "The script context (obfuscated) in which the error occurred",
          "type": "string"
        },
        "sourceScriptColumn": {
          "format": "int32",
          "type": "integer",
          "description": "Specifies the column from the source texts where the error occurred. (0 based, -1 for messages without column location) example: 6"
        },
        "message": {
          "description": "Detailed message of the record.",
          "type": "string"
        },
        "severity": {
          "type": "string",
          "description": "Severity of the translation record."
        },
        "sourceScriptLine": {
          "format": "int32",
          "description": "Specifies the row from the source text where the error occurred (0 based, -1 for messages without line location). Example: 2",
          "type": "integer"
        },
        "action": {
          "description": "Category of the error/warning. Example: SyntaxError",
          "type": "string"
        },
        "filePath": {
          "type": "string",
          "description": "The file path in which the error occurred"
        },
        "objectName": {
          "description": "Name of the affected object in the log message.",
          "type": "string"
        },
        "category": {
          "description": "Category of the error/warning. Example: SyntaxError",
          "type": "string"
        },
        "effect": {
          "description": "Effect of the error/warning. Example: COMPATIBILITY",
          "type": "string"
        },
        "filename": {
          "description": "The file name in which the error occurred",
          "type": "string"
        }
      },
      "description": "A record in the aggregate CSV report for a migration workflow",
      "id": "GoogleCloudBigqueryMigrationV2alphaGcsReportLogMessage",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaGreenplumDialect": {
      "properties": {},
      "description": "The dialect definition for Greenplum.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaGreenplumDialect"
    },
    "GoogleCloudBigqueryMigrationV2alphaAssessmentTaskDetails": {
      "id": "GoogleCloudBigqueryMigrationV2alphaAssessmentTaskDetails",
      "description": "Assessment task config.",
      "type": "object",
      "properties": {
        "outputDataset": {
          "description": "Required. The BigQuery dataset for output.",
          "type": "string"
        },
        "featureHandle": {
          "description": "Optional. A collection of additional feature flags for this assessment.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAssessmentFeatureHandle"
        },
        "dataSource": {
          "type": "string",
          "description": "Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) from which the input data is extracted."
        },
        "inputPath": {
          "description": "Required. The Cloud Storage path for assessment input files.",
          "type": "string"
        },
        "querylogsPath": {
          "description": "Optional. An optional Cloud Storage path to write the query logs (which is then used as an input path on the translation task)",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTeradataDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTeradataDialect",
      "description": "The dialect definition for Teradata.",
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "MODE_UNSPECIFIED",
            "SQL",
            "BTEQ"
          ],
          "description": "Which Teradata sub-dialect mode the user specifies.",
          "enumDescriptions": [
            "Unspecified mode.",
            "Teradata SQL mode.",
            "BTEQ mode (which includes SQL)."
          ]
        }
      }
    },
    "GoogleRpcErrorInfo": {
      "properties": {
        "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"
        },
        "reason": {
          "type": "string",
          "description": "The reason for 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."
        },
        "metadata": {
          "description": "Additional structured details about this error. Keys must match a regular expression of `a-z+` but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than `{\"instanceLimit\": \"100/request\"}`, should be returned as, `{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of instances that can be created in a single (batch) request.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "description": "Describes the cause of the error with structured details. Example of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: { \"reason\": \"API_DISABLED\" \"domain\": \"googleapis.com\" \"metadata\": { \"resource\": \"projects/123\", \"service\": \"pubsub.googleapis.com\" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { \"reason\": \"STOCKOUT\" \"domain\": \"spanner.googleapis.com\", \"metadata\": { \"availableRegions\": \"us-central1,us-east2\" } }",
      "type": "object",
      "id": "GoogleRpcErrorInfo"
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationFileMapping": {
      "type": "object",
      "properties": {
        "inputPath": {
          "type": "string",
          "description": "The Cloud Storage path for a file to translation in a subtask."
        },
        "outputPath": {
          "type": "string",
          "description": "The Cloud Storage path to write back the corresponding input file to."
        }
      },
      "description": "Mapping between an input and output file to be translated in a subtask.",
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationFileMapping"
    },
    "GoogleCloudBigqueryMigrationV2alphaResourceErrorDetail": {
      "description": "Provides details for errors and the corresponding resources.",
      "properties": {
        "errorDetails": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaErrorDetail"
          },
          "type": "array",
          "description": "Required. The error details for the resource."
        },
        "resourceInfo": {
          "$ref": "GoogleRpcResourceInfo",
          "description": "Required. Information about the resource where the error is located."
        },
        "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"
        }
      },
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaResourceErrorDetail"
    },
    "GoogleCloudBigqueryMigrationV2alphaAssessmentOrchestrationResultDetails": {
      "type": "object",
      "properties": {
        "outputTablesSchemaVersion": {
          "type": "string",
          "description": "Optional. The version used for the output table schemas."
        },
        "reportUri": {
          "type": "string",
          "description": "Optional. The URI of the Data Studio report."
        },
        "additionalReportUris": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. Mapping with additional report URIs. This gives a mapping of report names to their URIs. The possible values for the keys are documented in the user guide."
        }
      },
      "description": "Details for an assessment task orchestration result.",
      "id": "GoogleCloudBigqueryMigrationV2alphaAssessmentOrchestrationResultDetails"
    },
    "GoogleCloudBigqueryMigrationV2alphaFilter": {
      "description": "The filter applied to fields of translation details.",
      "properties": {
        "inputFileExclusionPrefixes": {
          "items": {
            "type": "string"
          },
          "description": "The list of prefixes used to exclude processing for input files.",
          "type": "array"
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaFilter",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationTaskResult": {
      "description": "The migration task result.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationTaskResult",
      "properties": {
        "translationTaskResult": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskResult",
          "description": "Details specific to translation task types."
        },
        "taskOutputs": {
          "additionalProperties": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTaskOutput"
          },
          "type": "object",
          "description": "The map of task output types to the task outputs, e.g. \"LINEAGE\"."
        },
        "assessmentDetails": {
          "description": "Details specific to assessment task types.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAssessmentOrchestrationResultDetails"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaLiteral": {
      "id": "GoogleCloudBigqueryMigrationV2alphaLiteral",
      "description": "Literal data.",
      "type": "object",
      "properties": {
        "literalString": {
          "description": "Literal string data.",
          "type": "string"
        },
        "literalBytes": {
          "type": "string",
          "format": "byte",
          "description": "Literal byte data."
        },
        "relativePath": {
          "description": "Required. The identifier of the literal entry.",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslateQueryRequest": {
      "type": "object",
      "properties": {
        "gcsPath": {
          "type": "string",
          "description": "Optional. The Cloud Storage path for a directory of config files applied during translation."
        },
        "sourceDialect": {
          "enum": [
            "SQL_TRANSLATION_SOURCE_DIALECT_UNSPECIFIED",
            "TERADATA",
            "REDSHIFT",
            "ORACLE",
            "HIVEQL",
            "SPARKSQL",
            "SNOWFLAKE",
            "NETEZZA",
            "AZURESYNAPSE",
            "VERTICA",
            "SQLSERVER",
            "PRESTO",
            "POSTGRESQL",
            "MYSQL",
            "BTEQ",
            "SQLITE",
            "DB2",
            "GREENPLUM",
            "LEGACY_SQL",
            "UNOPTIMIZED_BQ_SQL",
            "IMPALA"
          ],
          "enumDescriptions": [
            "SqlTranslationSourceDialect not specified.",
            "Teradata SQL.",
            "Redshift SQL.",
            "Oracle SQL.",
            "HiveQL SQL.",
            "SPARK SQL.",
            "Snowflake SQL.",
            "IBM Netezza SQL.",
            "Azure Synapse",
            "Vertica.",
            "SQL Server dialect.",
            "Presto.",
            "PostgreSQL.",
            "MySQL.",
            "BTEQ.",
            "SQLite dialect.",
            "DB2 dialect.",
            "Greenplum dialect.",
            "Demo dialect.",
            "Demo dialect.",
            "Impala dialect."
          ],
          "type": "string",
          "description": "Required. The source SQL dialect of `queries`."
        },
        "translationEngine": {
          "enum": [
            "TRANSLATION_ENGINE_UNSPECIFIED",
            "COMPILER",
            "AI",
            "COMPILER_AI_ENHANCED"
          ],
          "description": "Optional. The translation engine to use.",
          "enumDescriptions": [
            "The engine is unspecified.",
            "Compiler-based translation engine.",
            "AI-based translation engine.",
            "COMPILER with AI enhanced translation engine."
          ],
          "type": "string"
        },
        "query": {
          "description": "Required. The query to be translated.",
          "type": "string"
        },
        "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 instead of parsing a metadata.zip file."
        },
        "translationConfigId": {
          "type": "string",
          "description": "Optional. The id of the translation config to apply. Accepted id: batch translation job Id in the format of \"projects/xxxxxxx/locations/xx/workflows/xxxxxx\"."
        }
      },
      "description": "Deprecated: Use the regular CreateMigrationWorkflow method instead. The 'bigquerymigration.translation.translate' permission is replaced by 'bigquerymigration.workflows.create', 'bigquerymigration.workflows.get', and 'bigquerymigration.workflows.list'. The request of translating a SQL query to GoogleSQL.",
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslateQueryRequest",
      "deprecated": true
    },
    "GoogleCloudBigqueryMigrationV2alphaPrestoDialect": {
      "description": "The dialect definition for Presto.",
      "properties": {},
      "id": "GoogleCloudBigqueryMigrationV2alphaPrestoDialect",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaLineageOutputProgressReportWorkSummary": {
      "properties": {
        "state": {
          "readOnly": true,
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED",
            "IN_PROGRESS",
            "SKIPPED"
          ],
          "description": "Output only. The state of the work this summary describes.",
          "type": "string",
          "enumDescriptions": [
            "The state is not specified.",
            "Work that was processed successfully.",
            "Work that failed processing.",
            "Work that is currently being processed or queued for processing.",
            "Work that was recognised as necessary to fully process inputs but was skipped due to system limitations."
          ]
        },
        "comment": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Human-readable comment."
        },
        "size": {
          "type": "string",
          "description": "Output only. Size of the work in the given State. Size counts \"units of work\". Units represent arbitrary division of work; there's no expectation each unit takes similar time to process.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaLineageOutputProgressReportWorkSummary",
      "description": "Summary of work in the given state.",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaMySQLDialect": {
      "properties": {},
      "description": "The dialect definition for MySQL.",
      "id": "GoogleCloudBigqueryMigrationV2alphaMySQLDialect",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationTasksAssessmentV2alphaAssessmentTaskDetails": {
      "id": "GoogleCloudBigqueryMigrationTasksAssessmentV2alphaAssessmentTaskDetails",
      "type": "object",
      "description": "DEPRECATED! Use the AssessmentTaskDetails defined in com.google.cloud.bigquery.migration.v2alpha.AssessmentTaskDetails instead. Assessment task details.",
      "properties": {
        "outputDataset": {
          "description": "Required. The BigQuery dataset for output.",
          "type": "string"
        },
        "querylogsPath": {
          "description": "Optional. An optional Cloud Storage path to write the query logs (which is then used as an input path on the translation task)",
          "type": "string"
        },
        "dataSource": {
          "type": "string",
          "description": "Required. The data source or data warehouse type (eg: TERADATA/REDSHIFT) from which the input data is extracted."
        },
        "inputPath": {
          "type": "string",
          "description": "Required. The Cloud Storage path for assessment input files."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaLineageOutput": {
      "description": "The output of a task with output type \"LINEAGE\". Actual generated lineage can be queried separately (see webapp_uri), this message contains only metadata: processing status, errors, etc.",
      "id": "GoogleCloudBigqueryMigrationV2alphaLineageOutput",
      "properties": {
        "webappUri": {
          "type": "string",
          "description": "The URI of the webapp that visualizes the lineage. The user needs the `bigquerymigration.googleapis.com/lineageDbs.query` IAM permission to use the webapp."
        },
        "recognizedInputs": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaLineageOutputRecognizedInput"
          },
          "readOnly": true,
          "description": "Output only. Recognized lineage inputs. All inputs are processed only if the task succeeds and all work is in state [SUCCEEDED](ProgressReport.WorkSummary.State.SUCCEEDED) (in particular, nothing is [SKIPPED](ProgressReport.WorkSummary.State.SKIPPED)). Even with all inputs processed successfully, there may be transpiler errors present leading to inaccurate lineage.",
          "type": "array"
        },
        "processingProgressReports": {
          "description": "Output only. Work processing progress reports broken up by processing stage.",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaLineageOutputProgressReport"
          },
          "type": "array",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "GoogleApiDistributionRange": {
      "description": "The range of the population values.",
      "type": "object",
      "id": "GoogleApiDistributionRange",
      "properties": {
        "max": {
          "description": "The maximum of the population values.",
          "type": "number",
          "format": "double"
        },
        "min": {
          "format": "double",
          "type": "number",
          "description": "The minimum of the population values."
        }
      }
    },
    "GoogleProtobufEmpty": {
      "type": "object",
      "properties": {},
      "id": "GoogleProtobufEmpty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }"
    },
    "GoogleCloudBigqueryMigrationV2alphaSparkSQLDialect": {
      "description": "The dialect definition for SparkSQL.",
      "properties": {},
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaSparkSQLDialect"
    },
    "GoogleCloudBigqueryMigrationV2alphaTimeInterval": {
      "type": "object",
      "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": {
          "type": "string",
          "format": "google-datetime",
          "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": {
          "description": "Required. The end of the time interval.",
          "type": "string",
          "format": "google-datetime"
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaTimeInterval"
    },
    "GoogleCloudBigqueryMigrationV2alphaBigQueryDialect": {
      "description": "The dialect definition for BigQuery.",
      "id": "GoogleCloudBigqueryMigrationV2alphaBigQueryDialect",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaTaskOutput": {
      "properties": {
        "lineageOutput": {
          "description": "The output of the task with output type \"LINEAGE\".",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaLineageOutput"
        },
        "state": {
          "type": "string",
          "enum": [
            "STATE_UNSPECIFIED",
            "PENDING",
            "SUCCEEDED",
            "FAILED"
          ],
          "description": "Output only. The current state of the task output.",
          "enumDescriptions": [
            "Task output state is unspecified.",
            "Task output is pending.",
            "Task output is succeeded.",
            "Task output is failed. This does not mean that there is no useful information in the output; partial outputs or failure details may be available."
          ],
          "readOnly": true
        },
        "processingError": {
          "description": "An explanation that may be populated when the task output is in FAILED state.",
          "$ref": "GoogleRpcErrorInfo"
        }
      },
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaTaskOutput",
      "description": "The task output for a task type including the status and any errors."
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions": {
      "type": "object",
      "description": "BTEQ translation task related settings.",
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions",
      "properties": {
        "fileReplacementMap": {
          "description": "Maps the local paths that are used in BTEQ scripts (the keys) to the paths in Cloud Storage that should be used in their stead in the translation (the value).",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "projectDataset": {
          "description": "Specifies the project and dataset in BigQuery that will be used for external table creation during the translation.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaDatasetReference"
        },
        "defaultPathUri": {
          "type": "string",
          "description": "The Cloud Storage location to be used as the default path for files that are not otherwise specified in the file replacement map."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaLineageOutputRecognizedInput": {
      "description": "Information about lineage input of the given type that lineage generation recognized. If you expected to process more of the given input, verify your input was uploaded and is in the correct format and the request to generate lineage correctly specified the input location.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaLineageOutputRecognizedInput",
      "properties": {
        "uncompressedSizeBytes": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The uncompressed size of the recognized input of the given type.",
          "readOnly": true
        },
        "type": {
          "readOnly": true,
          "enumDescriptions": [
            "The type is not specified.",
            "The input is metadata.",
            "The input is a query log.",
            "The input is a SQL script."
          ],
          "description": "Output only. The type of the input.",
          "type": "string",
          "enum": [
            "TYPE_UNSPECIFIED",
            "METADATA",
            "QUERY_LOG",
            "SCRIPT"
          ]
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSuggestionConfig": {
      "description": "The configuration for the suggestion if requested as a target type.",
      "properties": {
        "skipSuggestionSteps": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSuggestionStep"
          },
          "description": "The list of suggestion steps to skip.",
          "type": "array"
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaSuggestionConfig",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceEnvironment": {
      "properties": {
        "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."
        },
        "defaultDatabase": {
          "description": "The default database name to fully qualify SQL objects when their database name is missing.",
          "type": "string"
        },
        "metadataCaching": {
          "description": "Optional. Metadata caching settings. If specified, translation will cache the metadata. Otherwise, metadata will be parsed from the metadata file. The cache is stored on the service side. Hence, enabling this feature will store data from the provided metadata file on the service side for up to 7 days.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaMetadataCaching"
        },
        "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."
        }
      },
      "type": "object",
      "description": "Represents the default source environment values for the translation.",
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceEnvironment"
    },
    "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": {
        "numFiniteBuckets": {
          "format": "int32",
          "type": "integer",
          "description": "Must be greater than 0."
        },
        "width": {
          "type": "number",
          "description": "Must be greater than 0.",
          "format": "double"
        },
        "offset": {
          "type": "number",
          "format": "double",
          "description": "Lower bound of the first bucket."
        }
      },
      "id": "GoogleApiDistributionBucketOptionsLinear"
    },
    "GoogleCloudBigqueryMigrationV2alphaPoint": {
      "properties": {
        "interval": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTimeInterval",
          "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."
        },
        "value": {
          "description": "The value of the data point.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTypedValue"
        }
      },
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaPoint",
      "description": "A single data point in a time series."
    },
    "GoogleCloudBigqueryMigrationV2alphaNetezzaDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaNetezzaDialect",
      "description": "The dialect definition for Netezza.",
      "properties": {},
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationReportRecord": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationReportRecord",
      "type": "object",
      "description": "Details about a record.",
      "properties": {
        "message": {
          "type": "string",
          "description": "Detailed message of the record."
        },
        "severity": {
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "INFO",
            "WARNING",
            "ERROR"
          ],
          "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."
          ],
          "type": "string",
          "description": "Severity of the translation record."
        },
        "category": {
          "description": "Category of the error/warning. Example: SyntaxError",
          "type": "string"
        },
        "scriptColumn": {
          "type": "integer",
          "format": "int32",
          "description": "Specifies the column from the source texts where the error occurred. (0 based) example: 6"
        },
        "scriptLine": {
          "description": "Specifies the row from the source text where the error occurred (0 based). Example: 2",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaPostgresqlDialect": {
      "description": "The dialect definition for Postgresql.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaPostgresqlDialect",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaTimeSeries": {
      "properties": {
        "metric": {
          "description": "Required. The name of the metric. If the metric is not known by the service yet, it will be auto-created.",
          "type": "string"
        },
        "points": {
          "description": "Required. The data points of this time series. When listing time series, points are returned in reverse time order. When creating a time series, this field must contain exactly one point and the point's type must be the same as the value type of the associated metric. If the associated metric's descriptor must be auto-created, then the value type of the descriptor is determined by the point's type, which must be `BOOL`, `INT64`, `DOUBLE`, or `DISTRIBUTION`.",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaPoint"
          },
          "type": "array"
        },
        "valueType": {
          "enum": [
            "VALUE_TYPE_UNSPECIFIED",
            "BOOL",
            "INT64",
            "DOUBLE",
            "STRING",
            "DISTRIBUTION",
            "MONEY"
          ],
          "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.",
          "type": "string"
        },
        "metricKind": {
          "description": "Optional. The metric kind of the time series. If present, it must be the same as the metric kind of the associated metric. If the associated metric's descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either `GAUGE` (the default) or `CUMULATIVE`.",
          "type": "string",
          "enumDescriptions": [
            "Do not use this default value.",
            "An instantaneous measurement of a value.",
            "The change in a value during a time interval.",
            "A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points."
          ],
          "enum": [
            "METRIC_KIND_UNSPECIFIED",
            "GAUGE",
            "DELTA",
            "CUMULATIVE"
          ]
        }
      },
      "type": "object",
      "description": "The metrics object for a SubTask.",
      "id": "GoogleCloudBigqueryMigrationV2alphaTimeSeries"
    },
    "GoogleCloudBigqueryMigrationV2alphaVerticaDialect": {
      "type": "object",
      "properties": {},
      "id": "GoogleCloudBigqueryMigrationV2alphaVerticaDialect",
      "description": "The dialect definition for Vertica."
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions": {
      "type": "object",
      "description": "Teradata SQL specific translation task related settings.",
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter": {
      "type": "object",
      "description": "The filter applied to fields of translation details.",
      "properties": {
        "inputFileExclusionPrefixes": {
          "items": {
            "type": "string"
          },
          "description": "The list of prefixes used to exclude processing for input files.",
          "type": "array"
        }
      },
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter"
    },
    "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\"."
        },
        "description": {
          "description": "Describes what error is encountered when accessing this resource. For example, updating a cloud project may require the `writer` permission on the developer console project.",
          "type": "string"
        },
        "owner": {
          "type": "string",
          "description": "The owner of the resource (optional). For example, \"user:\" or \"project:\"."
        },
        "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"
        }
      }
    },
    "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": {
        "teradataOptions": {
          "description": "The Teradata SQL specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTeradataOptions"
        },
        "specialTokenMap": {
          "type": "object",
          "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.",
          "additionalProperties": {
            "enum": [
              "TOKEN_TYPE_UNSPECIFIED",
              "STRING",
              "INT64",
              "NUMERIC",
              "BOOL",
              "FLOAT64",
              "DATE",
              "TIMESTAMP"
            ],
            "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."
            ],
            "type": "string"
          }
        },
        "identifierSettings": {
          "description": "The settings for SQL identifiers.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings"
        },
        "filePaths": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping"
          },
          "description": "Cloud Storage files to be processed for translation.",
          "type": "array"
        },
        "filter": {
          "description": "The filter applied to translation details.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaFilter"
        },
        "schemaPath": {
          "type": "string",
          "description": "The Cloud Storage path to DDL files as table schema to assist semantic translation."
        },
        "fileEncoding": {
          "type": "string",
          "description": "The file encoding type.",
          "enumDescriptions": [
            "File encoding setting is not specified.",
            "File encoding is UTF_8.",
            "File encoding is ISO_8859_1.",
            "File encoding is US_ASCII.",
            "File encoding is UTF_16.",
            "File encoding is UTF_16LE.",
            "File encoding is UTF_16BE."
          ],
          "enum": [
            "FILE_ENCODING_UNSPECIFIED",
            "UTF_8",
            "ISO_8859_1",
            "US_ASCII",
            "UTF_16",
            "UTF_16LE",
            "UTF_16BE"
          ]
        },
        "inputPath": {
          "description": "The Cloud Storage path for translation input files.",
          "type": "string"
        },
        "outputPath": {
          "description": "The Cloud Storage path for translation output files.",
          "type": "string"
        },
        "translationExceptionTable": {
          "description": "Specifies the exact name of the bigquery table (\"dataset.table\") to be used for surfacing raw translation errors. If the table does not exist, we will create it. If it already exists and the schema is the same, we will re-use. If the table exists and the schema is different, we will throw an error.",
          "type": "string"
        },
        "bteqOptions": {
          "description": "The BTEQ specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaBteqOptions"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceLocation": {
      "properties": {
        "gcsPath": {
          "description": "The Cloud Storage path for a directory of files.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents one path to the location that holds source data.",
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceLocation"
    },
    "GoogleCloudBigqueryMigrationV2alphaDB2Dialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaDB2Dialect",
      "description": "The dialect definition for DB2.",
      "properties": {},
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaStartMigrationWorkflowRequest": {
      "id": "GoogleCloudBigqueryMigrationV2alphaStartMigrationWorkflowRequest",
      "type": "object",
      "description": "A request to start a previously created migration workflow.",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationConfigDetails": {
      "type": "object",
      "description": "The translation config to capture necessary settings for a translation task and subtask.",
      "properties": {
        "targetDialect": {
          "description": "The target dialect for the engine to translate the input to.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaDialect"
        },
        "gcsSourcePath": {
          "description": "The Cloud Storage path for a directory of files to translate in a task.",
          "type": "string"
        },
        "targetTypes": {
          "description": "The types of output to generate, e.g. sql, metadata etc. If not specified, a default set of targets will be generated. Some additional target types may be slower to generate. See the documentation for the set of available target types.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sourceTargetLocationMapping": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceTargetLocationMapping"
          },
          "description": "The mapping from source location paths to target location paths.",
          "type": "array"
        },
        "sourceDialect": {
          "description": "The dialect of the input files.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaDialect"
        },
        "gcsTargetPath": {
          "description": "The Cloud Storage path to write back the corresponding input files to.",
          "type": "string"
        },
        "requestSource": {
          "description": "The indicator to show translation request initiator.",
          "type": "string"
        },
        "sourceEnv": {
          "description": "The default source environment values for the translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceEnv"
        },
        "nameMappingList": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaObjectNameMappingList",
          "description": "The mapping of objects to their desired output names in list form."
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationConfigDetails"
    },
    "GoogleCloudBigqueryMigrationV2alphaErrorLocation": {
      "id": "GoogleCloudBigqueryMigrationV2alphaErrorLocation",
      "description": "Holds information about where the error is located.",
      "type": "object",
      "properties": {
        "column": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. If applicable, denotes the column where the error occurred. A zero value means that there is no columns information."
        },
        "line": {
          "format": "int32",
          "type": "integer",
          "description": "Optional. If applicable, denotes the line where the error occurred. A zero value means that there is no line information."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSqlTranslationWarning": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationWarning",
      "deprecated": true,
      "description": "The detailed warning object if the SQL translation job is completed but not semantically correct. Deprecated! Use TranslationReportRecord to define warning messages.",
      "properties": {
        "warningDetail": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationErrorDetail",
          "description": "Specifies the details of the warning, including the warning message and location from the source text."
        }
      },
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping": {
      "description": "Mapping between an input and output file to be translated in a subtask.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaTranslationFileMapping",
      "properties": {
        "inputPath": {
          "type": "string",
          "description": "The Cloud Storage path for a file to translation in a subtask."
        },
        "outputPath": {
          "type": "string",
          "description": "The Cloud Storage path to write back the corresponding input file to."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaListMigrationWorkflowsResponse": {
      "type": "object",
      "description": "Response object for a `ListMigrationWorkflows` call.",
      "properties": {
        "migrationWorkflows": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow"
          },
          "description": "The migration workflows for the specified project / location.",
          "type": "array"
        },
        "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."
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaListMigrationWorkflowsResponse"
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceSpec": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceSpec",
      "properties": {
        "encoding": {
          "description": "Optional. The optional field to specify the encoding of the sql bytes.",
          "type": "string"
        },
        "baseUri": {
          "description": "The base URI for all files to be read in as sources for translation.",
          "type": "string"
        },
        "literal": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaLiteral",
          "description": "Source literal."
        },
        "gcsFilePath": {
          "description": "The path to a single source file in Cloud Storage.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents one path to the location that holds source data."
    },
    "GoogleCloudBigqueryMigrationV2alphaScriptLocation": {
      "description": "Location info of a script.",
      "properties": {
        "column": {
          "format": "int32",
          "type": "integer",
          "description": "Specifies the column of a script (0 based). Example: 6."
        },
        "line": {
          "description": "Specifies the row of a script (0 based). Example: 2.",
          "type": "integer",
          "format": "int32"
        },
        "offset": {
          "description": "Specifies the offset of a script in row of the starting location. Example 0.",
          "format": "int32",
          "type": "integer"
        },
        "length": {
          "type": "integer",
          "description": "Specifies the length of a script from the starting location. Example 10.",
          "format": "int32"
        }
      },
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaScriptLocation"
    },
    "GoogleApiDistributionExemplar": {
      "properties": {
        "timestamp": {
          "format": "google-datetime",
          "type": "string",
          "description": "The observation (sampling) time of the above value."
        },
        "value": {
          "format": "double",
          "description": "Value of the exemplar point. This value determines to which bucket the exemplar belongs.",
          "type": "number"
        },
        "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.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "type": "array"
        }
      },
      "id": "GoogleApiDistributionExemplar",
      "description": "Exemplars are example points that may be used to annotate aggregated distribution values. They are metadata that gives information about a particular value added to a Distribution bucket, such as a trace ID that was active when a value was added. They may contain further information, such as a example values and timestamps, origin, etc.",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaAzureSynapseDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaAzureSynapseDialect",
      "description": "The dialect definition for Azure Synapse.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaTeradataOptions": {
      "description": "Teradata SQL specific translation task related settings.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaTeradataOptions",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationSubtask": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationSubtask",
      "description": "A subtask for a migration which carries details about the configuration of the subtask. The content of the details should not matter to the end user, but is a contract between the subtask creator and subtask worker.",
      "properties": {
        "processingError": {
          "description": "Output only. An explanation that may be populated when the task is in FAILED state.",
          "$ref": "GoogleRpcErrorInfo",
          "readOnly": true
        },
        "createTime": {
          "readOnly": true,
          "description": "Output only. Time when the subtask was created.",
          "format": "google-datetime",
          "type": "string"
        },
        "name": {
          "description": "Output only. Immutable. The resource name for the migration subtask. The ID is server-generated. Example: `projects/123/locations/us/workflows/345/subtasks/678`",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "type": "string",
          "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."
        },
        "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."
          ],
          "type": "string",
          "readOnly": true,
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "RUNNING",
            "SUCCEEDED",
            "FAILED",
            "PAUSED",
            "PENDING_DEPENDENCY"
          ],
          "description": "Output only. The current state of the subtask."
        },
        "metrics": {
          "description": "Output only. The metrics for the subtask.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTimeSeries"
          },
          "readOnly": true
        },
        "lastUpdateTime": {
          "description": "Output only. Time when the subtask was last updated.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "resourceErrorDetails": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaResourceErrorDetail"
          },
          "description": "Output only. Provides details to errors and issues encountered while processing the subtask. Presence of error details does not mean that the subtask failed.",
          "readOnly": true,
          "type": "array"
        },
        "taskId": {
          "type": "string",
          "description": "The unique ID of the task to which this subtask belongs."
        },
        "resourceErrorCount": {
          "description": "Output only. The number or resources with errors. Note: This is not the total number of errors as each resource can have more than one error. This is used to indicate truncation by having a `resource_error_count` that is higher than the size of `resource_error_details`.",
          "format": "int32",
          "type": "integer",
          "readOnly": true
        }
      }
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaDatasetReference": {
      "type": "object",
      "id": "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"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaHiveQLDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaHiveQLDialect",
      "description": "The dialect definition for HiveQL.",
      "properties": {},
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationSuggestion": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationSuggestion",
      "properties": {
        "validationResult": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlValidationResult",
          "description": "Validation result of the suggestion."
        },
        "suggestion": {
          "type": "string",
          "description": "Translation suggestion."
        },
        "suggestionId": {
          "type": "string",
          "description": "Suggestion ID."
        },
        "scriptLocation": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaScriptLocation",
          "description": "Location where the suggestion should be applied in the output script. If unset, the suggestion should be applied to the whole script."
        }
      },
      "description": "LLM generated suggestion on fixing translation errors",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaSqlValidationResult": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaSqlValidationResult",
      "description": "Validation result of the translated SQL.",
      "properties": {
        "state": {
          "description": "Output only. Validation state",
          "enum": [
            "STATE_UNSPECIFIED",
            "SUCCEEDED",
            "FAILURE_SYNTAX_ERROR"
          ],
          "enumDescriptions": [
            "State not specified.",
            "Succeeded.",
            "Failure due to syntax error."
          ],
          "type": "string",
          "readOnly": true
        },
        "message": {
          "description": "Validation message",
          "type": "string"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTypedValue": {
      "type": "object",
      "description": "A single strongly-typed value.",
      "id": "GoogleCloudBigqueryMigrationV2alphaTypedValue",
      "properties": {
        "stringValue": {
          "type": "string",
          "description": "A variable-length string value."
        },
        "int64Value": {
          "description": "A 64-bit integer. Its range is approximately `+/-9.2x10^18`.",
          "format": "int64",
          "type": "string"
        },
        "boolValue": {
          "description": "A Boolean value: `true` or `false`.",
          "type": "boolean"
        },
        "distributionValue": {
          "$ref": "GoogleApiDistribution",
          "description": "A distribution 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."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaIdentifierSettings": {
      "description": "Settings related to SQL identifiers.",
      "properties": {
        "outputIdentifierCase": {
          "description": "The setting to control output queries' identifier case.",
          "enum": [
            "IDENTIFIER_CASE_UNSPECIFIED",
            "ORIGINAL",
            "UPPER",
            "LOWER"
          ],
          "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."
          ],
          "type": "string"
        },
        "identifierRewriteMode": {
          "enumDescriptions": [
            "SQL Identifier rewrite mode is unspecified.",
            "SQL identifiers won't be rewrite.",
            "All SQL identifiers will be rewrite."
          ],
          "enum": [
            "IDENTIFIER_REWRITE_MODE_UNSPECIFIED",
            "NONE",
            "REWRITE_ALL"
          ],
          "type": "string",
          "description": "Specifies the rewrite mode for SQL identifiers."
        }
      },
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaIdentifierSettings"
    },
    "GoogleCloudBigqueryMigrationV2alphaNameMappingValue": {
      "description": "The potential components of a full name mapping that will be mapped during translation in the target data warehouse.",
      "type": "object",
      "properties": {
        "relation": {
          "type": "string",
          "description": "The relation name (BigQuery table or view equivalent in the target data warehouse)."
        },
        "attribute": {
          "description": "The attribute name (BigQuery column equivalent in the target data warehouse).",
          "type": "string"
        },
        "database": {
          "type": "string",
          "description": "The database name (BigQuery project ID equivalent in the target data warehouse)."
        },
        "schema": {
          "description": "The schema name (BigQuery dataset equivalent in the target data warehouse).",
          "type": "string"
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaNameMappingValue"
    },
    "GoogleCloudBigqueryMigrationV2alphaListMigrationSubtasksResponse": {
      "id": "GoogleCloudBigqueryMigrationV2alphaListMigrationSubtasksResponse",
      "description": "Response object for a `ListMigrationSubtasks` call.",
      "type": "object",
      "properties": {
        "migrationSubtasks": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationSubtask"
          },
          "type": "array",
          "description": "The migration subtasks for the specified task."
        },
        "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."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaLineageOutputProgressReport": {
      "description": "Breaks down processing progress of work.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaLineageOutputProgressReport",
      "properties": {
        "processingStage": {
          "readOnly": true,
          "enumDescriptions": [
            "The stage is not specified.",
            "The input ingestion stage.",
            "The lineage DB postprocessing stage."
          ],
          "enum": [
            "PROCESSING_STAGE_UNSPECIFIED",
            "INPUT_INGESTION",
            "POSTPROCESSING"
          ],
          "description": "Output only. The processing stage this progress report describes.",
          "type": "string"
        },
        "workSummaries": {
          "readOnly": true,
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaLineageOutputProgressReportWorkSummary"
          },
          "type": "array",
          "description": "Output only. Summaries of work broken up by the state of the work. Each work summary describes how much work is in the given state. To get numbers for the total work covered, aggregate the numbers from all summaries."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaOracleDialect": {
      "properties": {},
      "id": "GoogleCloudBigqueryMigrationV2alphaOracleDialect",
      "type": "object",
      "description": "The dialect definition for Oracle."
    },
    "GoogleCloudBigqueryMigrationV2alphaSnowflakeDialect": {
      "properties": {},
      "id": "GoogleCloudBigqueryMigrationV2alphaSnowflakeDialect",
      "description": "The dialect definition for Snowflake.",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings": {
      "properties": {
        "identifierRewriteMode": {
          "enumDescriptions": [
            "SQL Identifier rewrite mode is unspecified.",
            "SQL identifiers won't be rewrite.",
            "All SQL identifiers will be rewrite."
          ],
          "type": "string",
          "description": "Specifies the rewrite mode for SQL identifiers.",
          "enum": [
            "IDENTIFIER_REWRITE_MODE_UNSPECIFIED",
            "NONE",
            "REWRITE_ALL"
          ]
        },
        "outputIdentifierCase": {
          "enumDescriptions": [
            "The identifier case is not specified.",
            "Identifiers' cases will be kept as the original cases.",
            "Identifiers will be in upper cases.",
            "Identifiers will be in lower cases."
          ],
          "enum": [
            "IDENTIFIER_CASE_UNSPECIFIED",
            "ORIGINAL",
            "UPPER",
            "LOWER"
          ],
          "description": "The setting to control output queries' identifier case.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationTasksTranslationV2alphaIdentifierSettings",
      "description": "Settings related to SQL identifiers."
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationTaskOrchestrationResult": {
      "description": "Additional information from the orchestrator when it is done with the task orchestration.",
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationTaskOrchestrationResult",
      "type": "object",
      "properties": {
        "translationTaskResult": {
          "description": "Details specific to translation task types.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskResult"
        },
        "taskOutputs": {
          "additionalProperties": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTaskOutput"
          },
          "description": "The map of task output types to the task outputs, e.g. \"LINEAGE\".",
          "type": "object"
        },
        "assessmentDetails": {
          "description": "Details specific to assessment task types.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAssessmentOrchestrationResultDetails"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaAssessmentFeatureHandle": {
      "id": "GoogleCloudBigqueryMigrationV2alphaAssessmentFeatureHandle",
      "type": "object",
      "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."
        },
        "generateTcoReport": {
          "description": "Optional. Whether the TCO report Google Doc generation is allowlisted for the project.",
          "type": "boolean"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSuggestionStep": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSuggestionStep",
      "description": "Suggestion step to skip.",
      "properties": {
        "rewriteTarget": {
          "description": "The rewrite target.",
          "enumDescriptions": [
            "Rewrite target unspecified.",
            "Source SQL.",
            "Target SQL."
          ],
          "enum": [
            "REWRITE_TARGET_UNSPECIFIED",
            "SOURCE_SQL",
            "TARGET_SQL"
          ],
          "type": "string"
        },
        "suggestionType": {
          "description": "The type of suggestion.",
          "enumDescriptions": [
            "Suggestion type unspecified.",
            "Query customization.",
            "Translation explanation."
          ],
          "type": "string",
          "enum": [
            "SUGGESTION_TYPE_UNSPECIFIED",
            "QUERY_CUSTOMIZATION",
            "TRANSLATION_EXPLANATION"
          ]
        }
      },
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslateQueryResponse": {
      "description": "Deprecated: Use the regular CreateMigrationWorkflow method instead. The 'bigquerymigration.translation.translate' permission is replaced by 'bigquerymigration.workflows.create', 'bigquerymigration.workflows.get', and 'bigquerymigration.workflows.list'. The response of translating a SQL query to GoogleSQL.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslateQueryResponse",
      "properties": {
        "warnings": {
          "deprecated": true,
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationWarning"
          },
          "description": "The list of warnings encountered during the translation, if present, indicates non-semantically correct translation. Deprecated: use TranslationResultDetails.TranslationReportRecord instead."
        },
        "translationStartTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The timestamp when the server starts to process the translation job."
        },
        "translationResultDetails": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationResultDetails",
          "description": "The details of the translation results."
        },
        "errors": {
          "description": "The list of errors encountered during the translation, if present.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationError"
          },
          "deprecated": true
        },
        "suggestions": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationSuggestion"
          },
          "type": "array",
          "description": "Translation suggestions"
        },
        "translatedQuery": {
          "type": "string",
          "description": "The translated result. It may contain error/warning messages as comments."
        },
        "translationJob": {
          "type": "string",
          "description": "Output only. Immutable. The unique identifier for the SQL translation job. Example: `projects/123/locations/us/translation/1234`",
          "readOnly": true
        },
        "translationEndTime": {
          "type": "string",
          "description": "The timestamp when the translation of the SQL query was completed.",
          "format": "google-datetime"
        }
      },
      "deprecated": true
    },
    "GoogleCloudBigqueryMigrationV2alphaSqlTranslationErrorDetail": {
      "type": "object",
      "properties": {
        "column": {
          "format": "int64",
          "type": "string",
          "description": "Specifie the column from the source texts where the error occurred."
        },
        "row": {
          "type": "string",
          "format": "int64",
          "description": "Specifies the row from the source text where the error occurred."
        },
        "message": {
          "type": "string",
          "description": "A human-readable description of the error."
        }
      },
      "description": "Structured error object capturing the error message and the location in the source text where the error occurs. Deprecated! Use TranslationReportRecord to define error/warning messages.",
      "id": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationErrorDetail"
    },
    "GoogleCloudBigqueryMigrationV2alphaObjectNameMapping": {
      "description": "Represents a key-value pair of NameMappingKey to NameMappingValue to represent the mapping of SQL names from the input value to desired output.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaObjectNameMapping",
      "properties": {
        "source": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaNameMappingKey",
          "description": "The name of the object in source that is being mapped."
        },
        "target": {
          "description": "The desired target name of the object that is being mapped.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaNameMappingValue"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaNameMappingKey": {
      "id": "GoogleCloudBigqueryMigrationV2alphaNameMappingKey",
      "description": "The potential components of a full name mapping that will be mapped during translation in the source data warehouse.",
      "properties": {
        "type": {
          "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",
          "description": "The type of object that is being mapped.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "DATABASE",
            "SCHEMA",
            "RELATION",
            "ATTRIBUTE",
            "RELATION_ALIAS",
            "ATTRIBUTE_ALIAS",
            "FUNCTION"
          ]
        },
        "database": {
          "type": "string",
          "description": "The database name (BigQuery project ID equivalent in the source data warehouse)."
        },
        "relation": {
          "type": "string",
          "description": "The relation name (BigQuery table or view equivalent in the source data warehouse)."
        },
        "attribute": {
          "type": "string",
          "description": "The attribute name (BigQuery column equivalent in the source data warehouse)."
        },
        "schema": {
          "description": "The schema name (BigQuery dataset equivalent in the source data warehouse).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceEnv": {
      "properties": {
        "defaultDatabase": {
          "description": "The default database name to fully qualify SQL objects when their database name is missing.",
          "type": "string"
        },
        "schemaSearchPath": {
          "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.",
          "type": "array"
        },
        "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."
        }
      },
      "description": "Represents the default source environment values for the translation.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceEnv"
    },
    "GoogleCloudBigqueryMigrationV2alphaTargetSpec": {
      "id": "GoogleCloudBigqueryMigrationV2alphaTargetSpec",
      "description": "Represents one path to the location that holds target data.",
      "properties": {
        "relativePath": {
          "description": "The relative path for the target data. Given source file `base_uri/input/sql`, the output would be `target_base_uri/sql/relative_path/input.sql`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleApiDistributionBucketOptionsExponential": {
      "properties": {
        "growthFactor": {
          "format": "double",
          "description": "Must be greater than 1.",
          "type": "number"
        },
        "scale": {
          "format": "double",
          "description": "Must be greater than 0.",
          "type": "number"
        },
        "numFiniteBuckets": {
          "type": "integer",
          "format": "int32",
          "description": "Must be greater than 0."
        }
      },
      "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)).",
      "id": "GoogleApiDistributionBucketOptionsExponential",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationResultDetails": {
      "deprecated": true,
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationResultDetails",
      "type": "object",
      "properties": {
        "translationMetrics": {
          "additionalProperties": {
            "type": "integer",
            "format": "int32"
          },
          "description": "Translation metrics. E.g., Compiler_Clean: 5, Compiler_BestEffort: 2, Emitter_Clean: 1,Emitter_Error: 3, etc.",
          "type": "object"
        },
        "reportRecords": {
          "type": "array",
          "description": "Translation details about warning/error records.",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationReportRecord"
          }
        }
      },
      "description": "Deprecated: Use the regular CreateMigrationWorkflow method instead. The 'bigquerymigration.translation.translate' permission is replaced by 'bigquerymigration.workflows.create', 'bigquerymigration.workflows.get', and 'bigquerymigration.workflows.list'. Translation details like metrics, warning/error records."
    },
    "GoogleCloudBigqueryMigrationV2alphaSqlTranslationError": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationError",
      "deprecated": true,
      "description": "The detailed error object if the SQL translation job fails. Deprecated! Use TranslationReportRecord to define error messages.",
      "properties": {
        "errorType": {
          "type": "string",
          "enum": [
            "SQL_TRANSLATION_ERROR_TYPE_UNSPECIFIED",
            "SQL_PARSE_ERROR",
            "UNSUPPORTED_SQL_FUNCTION"
          ],
          "description": "The type of SQL translation error.",
          "enumDescriptions": [
            "SqlTranslationErrorType not specified.",
            "Failed to parse the input text as a SQL query.",
            "Found unsupported functions in the input SQL query that are not able to translate."
          ]
        },
        "errorDetail": {
          "description": "Specifies the details of the error, including the error message and location from the source text.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSqlTranslationErrorDetail"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaRedshiftDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaRedshiftDialect",
      "type": "object",
      "description": "The dialect definition for Redshift.",
      "properties": {}
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationTask": {
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationTask",
      "type": "object",
      "properties": {
        "totalProcessingErrorCount": {
          "type": "integer",
          "format": "int32",
          "readOnly": true,
          "description": "Output only. Count of all the processing errors in this task and its subtasks."
        },
        "lastUpdateTime": {
          "type": "string",
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. Time when the task was last updated."
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Time when the task was created."
        },
        "type": {
          "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.",
          "type": "string"
        },
        "taskResult": {
          "description": "Output only. The result of the task.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationTaskResult",
          "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": "GoogleCloudBigqueryMigrationV2alphaResourceErrorDetail"
          }
        },
        "state": {
          "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."
          ],
          "description": "Output only. The current state of the task.",
          "type": "string",
          "enum": [
            "STATE_UNSPECIFIED",
            "PENDING",
            "ORCHESTRATING",
            "RUNNING",
            "PAUSED",
            "SUCCEEDED",
            "FAILED"
          ],
          "readOnly": true
        },
        "totalResourceErrorCount": {
          "readOnly": true,
          "format": "int32",
          "type": "integer",
          "description": "Output only. Count of all the resource errors in this task and its subtasks."
        },
        "resourceErrorCount": {
          "format": "int32",
          "readOnly": true,
          "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`."
        },
        "details": {
          "description": "DEPRECATED! Use one of the task_details below. The details of the task. The type URL must be one of the supported task details messages and correspond to the Task's type.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "translationConfigDetails": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationConfigDetails",
          "description": "Task configuration for CW Batch/Offline SQL Translation."
        },
        "processingError": {
          "$ref": "GoogleRpcErrorInfo",
          "readOnly": true,
          "description": "Output only. An explanation that may be populated when the task is in FAILED state."
        },
        "assessmentTaskDetails": {
          "description": "Task configuration for Assessment.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAssessmentTaskDetails"
        },
        "metrics": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTimeSeries"
          },
          "description": "Output only. The metrics for the task.",
          "type": "array",
          "readOnly": true
        },
        "orchestrationResult": {
          "description": "Output only. Deprecated: Use the task_result field below instead. Additional information about the orchestration.",
          "deprecated": true,
          "readOnly": true,
          "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationTaskOrchestrationResult"
        },
        "translationTaskDetails": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskDetails",
          "description": "Task configuration for Batch SQL Translation."
        },
        "translationDetails": {
          "description": "Task details for unified SQL Translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationDetails"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Immutable. The unique identifier for the migration task. The ID is server-generated."
        }
      },
      "description": "A single task for a migration which has details about the configuration of the task."
    },
    "GoogleCloudBigqueryMigrationV2alphaSourceTargetMapping": {
      "properties": {
        "targetSpec": {
          "description": "The target SQL or the path for it.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTargetSpec"
        },
        "sourceSpec": {
          "description": "The source SQL or the path to it.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceSpec"
        }
      },
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaSourceTargetMapping",
      "description": "Represents one mapping from a source SQL to a target SQL."
    },
    "GoogleApiDistributionBucketOptionsExplicit": {
      "id": "GoogleApiDistributionBucketOptionsExplicit",
      "description": "Specifies a set of buckets with arbitrary widths. There are `size(bounds) + 1` (= N) buckets. Bucket `i` has the following boundaries: Upper bound (0 \u003c= i \u003c N-1): bounds[i] Lower bound (1 \u003c= i \u003c N); bounds[i - 1] The `bounds` field must contain at least one element. If `bounds` has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets.",
      "properties": {
        "bounds": {
          "items": {
            "type": "number",
            "format": "double"
          },
          "description": "The values must be monotonically increasing.",
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaObjectNameMappingList": {
      "properties": {
        "nameMap": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaObjectNameMapping"
          },
          "type": "array",
          "description": "The elements of the object name map."
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaObjectNameMappingList",
      "description": "Represents a map of name mappings using a list of key:value proto messages of existing name to desired output name.",
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationDetails": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationDetails",
      "properties": {
        "targetTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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."
        },
        "sourceTargetMapping": {
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceTargetMapping"
          },
          "description": "The mapping from source to target SQL.",
          "type": "array"
        },
        "suggestionConfig": {
          "description": "The configuration for the suggestion if requested as a target type.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSuggestionConfig"
        },
        "targetReturnLiterals": {
          "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.",
          "type": "array"
        },
        "targetBaseUri": {
          "type": "string",
          "description": "The base URI for all writes to persistent storage."
        },
        "sourceEnvironment": {
          "description": "The default source environment values for the translation.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSourceEnvironment"
        }
      },
      "description": "The translation details to capture the necessary settings for a translation job."
    },
    "GoogleCloudBigqueryMigrationV2alphaSQLiteDialect": {
      "properties": {},
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaSQLiteDialect",
      "description": "The dialect definition for SQLite."
    },
    "GoogleApiDistribution": {
      "properties": {
        "mean": {
          "format": "double",
          "type": "number",
          "description": "The arithmetic mean of the values in the population. If `count` is zero then this field must be zero."
        },
        "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"
        },
        "exemplars": {
          "type": "array",
          "items": {
            "$ref": "GoogleApiDistributionExemplar"
          },
          "description": "Must be in increasing order of `value` field."
        },
        "bucketCounts": {
          "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).",
          "type": "array"
        },
        "sumOfSquaredDeviation": {
          "format": "double",
          "type": "number",
          "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."
        },
        "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."
        }
      },
      "type": "object",
      "id": "GoogleApiDistribution",
      "description": "`Distribution` contains summary statistics for a population of values. It optionally contains a histogram representing the distribution of those values across a set of buckets. The summary statistics are the count, mean, sum of the squared deviation from the mean, the minimum, and the maximum of the set of population of values. The histogram is based on a sequence of buckets and gives a count of values that fall into each bucket. The boundaries of the buckets are given either explicitly or by formulas for buckets of fixed or exponentially increasing widths. Although it is not forbidden, it is generally a bad idea to include non-finite values (infinities or NaNs) in the population of values, as this will render the `mean` and `sum_of_squared_deviation` fields meaningless."
    },
    "GoogleApiDistributionBucketOptions": {
      "type": "object",
      "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.",
      "id": "GoogleApiDistributionBucketOptions",
      "properties": {
        "explicitBuckets": {
          "description": "The explicit buckets.",
          "$ref": "GoogleApiDistributionBucketOptionsExplicit"
        },
        "linearBuckets": {
          "description": "The linear bucket.",
          "$ref": "GoogleApiDistributionBucketOptionsLinear"
        },
        "exponentialBuckets": {
          "$ref": "GoogleApiDistributionBucketOptionsExponential",
          "description": "The exponential buckets."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaBteqOptions": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaBteqOptions",
      "description": "BTEQ translation task related settings.",
      "properties": {
        "fileReplacementMap": {
          "description": "Maps the local paths that are used in BTEQ scripts (the keys) to the paths in Cloud Storage that should be used in their stead in the translation (the value).",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "projectDataset": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaDatasetReference",
          "description": "Specifies the project and dataset in BigQuery that will be used for external table creation during the translation."
        },
        "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"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaDatasetReference": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaDatasetReference",
      "properties": {
        "projectIdAlternative": {
          "description": "The alternative field that will be used when the service is not able to translate the received data to the project_id field.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "projectId": {
          "description": "The ID of the project containing this dataset.",
          "type": "string"
        },
        "datasetId": {
          "type": "string",
          "description": "A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters."
        },
        "datasetIdAlternative": {
          "description": "The alternative field that will be used when the service is not able to translate the received data to the dataset_id field.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Reference to a BigQuery dataset."
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationTaskDetails": {
      "type": "object",
      "properties": {
        "inputPath": {
          "description": "The Cloud Storage path for translation input files.",
          "type": "string"
        },
        "bteqOptions": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaBteqOptions",
          "description": "The BTEQ specific settings for the translation task."
        },
        "schemaPath": {
          "type": "string",
          "description": "The Cloud Storage path to DDL files as table schema to assist semantic translation."
        },
        "teradataOptions": {
          "description": "The Teradata SQL specific settings for the translation task.",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTeradataOptions"
        },
        "specialTokenMap": {
          "description": "The map capturing special tokens to be replaced during translation. The key is special token in string. The value is the token data type. This is used to translate SQL query template which contains special token as place holder. The special token makes a query invalid to parse. This map will be applied to annotate those special token with types to let parser understand how to parse them into proper structure with type information.",
          "type": "object",
          "additionalProperties": {
            "enum": [
              "TOKEN_TYPE_UNSPECIFIED",
              "STRING",
              "INT64",
              "NUMERIC",
              "BOOL",
              "FLOAT64",
              "DATE",
              "TIMESTAMP"
            ],
            "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."
            ],
            "type": "string"
          }
        },
        "filter": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaFilter",
          "description": "The filter applied to translation details."
        },
        "fileEncoding": {
          "enum": [
            "FILE_ENCODING_UNSPECIFIED",
            "UTF_8",
            "ISO_8859_1",
            "US_ASCII",
            "UTF_16",
            "UTF_16LE",
            "UTF_16BE"
          ],
          "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.",
          "type": "string"
        },
        "translationExceptionTable": {
          "description": "Specifies the exact name of the bigquery table (\"dataset.table\") to be used for surfacing raw translation errors. If the table does not exist, we will create it. If it already exists and the schema is the same, we will re-use. If the table exists and the schema is different, we will throw an error.",
          "type": "string"
        },
        "identifierSettings": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaIdentifierSettings",
          "description": "The settings for SQL identifiers."
        },
        "outputPath": {
          "description": "The Cloud Storage path for translation output files.",
          "type": "string"
        },
        "filePaths": {
          "type": "array",
          "description": "Cloud Storage files to be processed for translation.",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslationFileMapping"
          }
        }
      },
      "description": "The translation task config to capture necessary settings for a translation task and subtask.",
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskDetails"
    },
    "GoogleCloudBigqueryMigrationV2alphaTranslationTaskResult": {
      "description": "Translation specific result details from the migration task.",
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaTranslationTaskResult",
      "properties": {
        "translatedLiterals": {
          "description": "The list of the translated literals.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaLiteral"
          }
        },
        "reportLogMessages": {
          "description": "The records from the aggregate CSV report for a migration workflow.",
          "items": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaGcsReportLogMessage"
          },
          "type": "array"
        },
        "consoleUri": {
          "type": "string",
          "description": "The Cloud Console URI for the migration workflow."
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaSQLServerDialect": {
      "id": "GoogleCloudBigqueryMigrationV2alphaSQLServerDialect",
      "description": "The dialect definition for SQL Server.",
      "properties": {},
      "type": "object"
    },
    "GoogleCloudBigqueryMigrationV2alphaErrorDetail": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaErrorDetail",
      "description": "Provides details for errors, e.g. issues that where encountered when processing a subtask.",
      "properties": {
        "location": {
          "description": "Optional. The exact location within the resource (if applicable).",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaErrorLocation"
        },
        "errorInfo": {
          "description": "Required. Describes the cause of the error with structured detail.",
          "$ref": "GoogleRpcErrorInfo"
        }
      }
    },
    "GoogleCloudBigqueryMigrationV2alphaTargetLocation": {
      "properties": {
        "gcsPath": {
          "type": "string",
          "description": "The Cloud Storage path for a directory of files."
        }
      },
      "type": "object",
      "description": "// Represents one path to the location that holds target data.",
      "id": "GoogleCloudBigqueryMigrationV2alphaTargetLocation"
    },
    "GoogleCloudBigqueryMigrationV2alphaDialect": {
      "type": "object",
      "properties": {
        "sparksqlDialect": {
          "description": "The SparkSQL dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSparkSQLDialect"
        },
        "verticaDialect": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaVerticaDialect",
          "description": "The Vertica dialect"
        },
        "redshiftDialect": {
          "description": "The Redshift dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaRedshiftDialect"
        },
        "azureSynapseDialect": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaAzureSynapseDialect",
          "description": "The Azure Synapse dialect"
        },
        "prestoDialect": {
          "description": "The Presto dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaPrestoDialect"
        },
        "db2Dialect": {
          "description": "DB2 dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaDB2Dialect"
        },
        "sqlServerDialect": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSQLServerDialect",
          "description": "The SQL Server dialect"
        },
        "oracleDialect": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaOracleDialect",
          "description": "The Oracle dialect"
        },
        "greenplumDialect": {
          "description": "Greenplum dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaGreenplumDialect"
        },
        "bigqueryDialect": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaBigQueryDialect",
          "description": "The BigQuery dialect"
        },
        "hiveqlDialect": {
          "description": "The HiveQL dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaHiveQLDialect"
        },
        "sqliteDialect": {
          "description": "SQLite dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSQLiteDialect"
        },
        "postgresqlDialect": {
          "description": "The Postgresql dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaPostgresqlDialect"
        },
        "mysqlDialect": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaMySQLDialect",
          "description": "The MySQL dialect"
        },
        "netezzaDialect": {
          "description": "The Netezza dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaNetezzaDialect"
        },
        "snowflakeDialect": {
          "$ref": "GoogleCloudBigqueryMigrationV2alphaSnowflakeDialect",
          "description": "The Snowflake dialect"
        },
        "teradataDialect": {
          "description": "The Teradata dialect",
          "$ref": "GoogleCloudBigqueryMigrationV2alphaTeradataDialect"
        }
      },
      "id": "GoogleCloudBigqueryMigrationV2alphaDialect",
      "description": "The possible dialect options for translation."
    },
    "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow": {
      "type": "object",
      "id": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow",
      "properties": {
        "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"
        },
        "lastUpdateTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. Time when the workflow was last updated."
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "DRAFT",
            "RUNNING",
            "PAUSED",
            "COMPLETED"
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. That status of the workflow.",
          "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."
          ]
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "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": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Time when the workflow was created.",
          "format": "google-datetime"
        },
        "tasks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationTask"
          },
          "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."
        }
      },
      "description": "A migration workflow which specifies what needs to be done for an EDW migration."
    }
  },
  "kind": "discovery#restDescription",
  "canonicalName": "Migration Service",
  "documentationLink": "https://cloud.google.com/solutions/migration/dw2bq/dw-bq-migration-overview",
  "protocol": "rest",
  "servicePath": "",
  "basePath": "",
  "version": "v2alpha",
  "baseUrl": "https://bigquerymigration.googleapis.com/",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "translateQuery": {
              "httpMethod": "POST",
              "description": "Deprecated: Use the regular CreateMigrationWorkflow method instead. The 'bigquerymigration.translation.translate' permission is replaced by 'bigquerymigration.workflows.create', 'bigquerymigration.workflows.get', and 'bigquerymigration.workflows.list'. Translates input queries from source dialects to GoogleSQL.",
              "parameters": {
                "parent": {
                  "location": "path",
                  "description": "Required. The name of the project to which this translation request belongs. Example: `projects/foo/locations/bar`",
                  "type": "string",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "required": true
                }
              },
              "path": "v2alpha/{+parent}:translateQuery",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "request": {
                "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslateQueryRequest"
              },
              "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}:translateQuery",
              "deprecated": true,
              "response": {
                "$ref": "GoogleCloudBigqueryMigrationV2alphaTranslateQueryResponse"
              },
              "id": "bigquerymigration.projects.locations.translateQuery",
              "parameterOrder": [
                "parent"
              ]
            }
          },
          "resources": {
            "workflows": {
              "resources": {
                "subtasks": {
                  "methods": {
                    "get": {
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationSubtask"
                      },
                      "parameters": {
                        "name": {
                          "required": true,
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+/subtasks/[^/]+$",
                          "description": "Required. The unique identifier for the migration subtask. Example: `projects/123/locations/us/workflows/1234/subtasks/543`"
                        },
                        "readMask": {
                          "description": "Optional. The list of fields to be retrieved.",
                          "type": "string",
                          "location": "query",
                          "format": "google-fieldmask"
                        }
                      },
                      "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/subtasks/{subtasksId}",
                      "path": "v2alpha/{+name}",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "bigquerymigration.projects.locations.workflows.subtasks.get",
                      "description": "Gets a previously created migration subtask.",
                      "parameterOrder": [
                        "name"
                      ]
                    },
                    "list": {
                      "id": "bigquerymigration.projects.locations.workflows.subtasks.list",
                      "parameters": {
                        "parent": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                          "location": "path",
                          "type": "string",
                          "description": "Required. The migration task of the subtasks to list. Example: `projects/123/locations/us/workflows/1234`",
                          "required": true
                        },
                        "pageSize": {
                          "format": "int32",
                          "description": "Optional. The maximum number of migration tasks to return. The service may return fewer than this number.",
                          "type": "integer",
                          "location": "query"
                        },
                        "pageToken": {
                          "location": "query",
                          "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.",
                          "type": "string"
                        },
                        "readMask": {
                          "description": "Optional. The list of fields to be retrieved.",
                          "format": "google-fieldmask",
                          "location": "query",
                          "type": "string"
                        },
                        "filter": {
                          "description": "Optional. The filter to apply. This can be used to get the subtasks of a specific tasks in a workflow, e.g. `migration_task = \"ab012\"` where `\"ab012\"` is the task ID (not the name in the named map).",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "path": "v2alpha/{+parent}/subtasks",
                      "description": "Lists previously created migration subtasks.",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "GET",
                      "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/subtasks",
                      "response": {
                        "$ref": "GoogleCloudBigqueryMigrationV2alphaListMigrationSubtasksResponse"
                      },
                      "parameterOrder": [
                        "parent"
                      ]
                    }
                  }
                }
              },
              "methods": {
                "list": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "readMask": {
                      "description": "The list of fields to be retrieved.",
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string"
                    },
                    "filter": {
                      "description": "Optional. An optional AIP-160 filter to apply. The following attributes are supported: `display_name`, `state`, `task.name`, and `task.type`.",
                      "type": "string",
                      "location": "query"
                    },
                    "pageSize": {
                      "location": "query",
                      "type": "integer",
                      "format": "int32",
                      "description": "The maximum number of migration workflows to return. The service may return fewer than this number."
                    },
                    "parent": {
                      "description": "Required. The project and location of the migration workflows to list. Example: `projects/123/locations/us`",
                      "type": "string",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true
                    },
                    "pageToken": {
                      "type": "string",
                      "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"
                    },
                    "orderBy": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. An optional AIP-132 order by field. The following attributes are supported: `display_name`, `state`, `task.name`, and `task.type`."
                    }
                  },
                  "description": "Lists previously created migration workflow.",
                  "path": "v2alpha/{+parent}/workflows",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows",
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaListMigrationWorkflowsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "bigquerymigration.projects.locations.workflows.list"
                },
                "delete": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v2alpha/{+name}",
                  "description": "Deletes a migration workflow by name.",
                  "parameters": {
                    "name": {
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$"
                    }
                  },
                  "id": "bigquerymigration.projects.locations.workflows.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "httpMethod": "DELETE",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}"
                },
                "start": {
                  "request": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaStartMigrationWorkflowRequest"
                  },
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}:start",
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "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": "v2alpha/{+name}:start",
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "required": true,
                      "type": "string",
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$"
                    }
                  }
                },
                "get": {
                  "id": "bigquerymigration.projects.locations.workflows.get",
                  "description": "Gets a previously created migration workflow.",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquerymigration",
                    "https://www.googleapis.com/auth/bigquerymigration.readonly",
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow"
                  },
                  "httpMethod": "GET",
                  "path": "v2alpha/{+name}",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}",
                  "parameters": {
                    "name": {
                      "description": "Required. The unique identifier for the migration workflow. Example: `projects/123/locations/us/workflows/1234`",
                      "type": "string",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$",
                      "required": true
                    },
                    "readMask": {
                      "description": "The list of fields to be retrieved.",
                      "location": "query",
                      "format": "google-fieldmask",
                      "type": "string"
                    }
                  }
                },
                "create": {
                  "description": "Creates a migration workflow.",
                  "request": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquerymigration",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/devstorage.read_only"
                  ],
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "type": "string",
                      "description": "Required. The name of the project to which this migration workflow belongs. Example: `projects/foo/locations/bar`"
                    }
                  },
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/workflows",
                  "response": {
                    "$ref": "GoogleCloudBigqueryMigrationV2alphaMigrationWorkflow"
                  },
                  "path": "v2alpha/{+parent}/workflows",
                  "id": "bigquerymigration.projects.locations.workflows.create",
                  "httpMethod": "POST"
                }
              }
            }
          }
        }
      }
    }
  },
  "parameters": {
    "key": {
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "type": "string",
      "location": "query",
      "description": "OAuth access token."
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "alt": {
      "description": "Data format for response.",
      "default": "json",
      "location": "query",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "type": "string",
      "enum": [
        "json",
        "media",
        "proto"
      ]
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "description": "V1 error format.",
      "location": "query",
      "enum": [
        "1",
        "2"
      ],
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "location": "query",
      "type": "boolean",
      "default": "true",
      "description": "Returns response with indentations and line breaks."
    },
    "upload_protocol": {
      "type": "string",
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "uploadType": {
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "type": "string"
    },
    "quotaUser": {
      "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.",
      "type": "string",
      "location": "query"
    }
  },
  "discoveryVersion": "v1",
  "version_module": true,
  "mtlsRootUrl": "https://bigquerymigration.mtls.googleapis.com/",
  "description": "The migration service, exposing apis for migration jobs operations, and agent management.",
  "endpoints": [
    {
      "description": "Regional Endpoint",
      "location": "asia-northeast1",
      "endpointUrl": "https://bigquerymigration.asia-northeast1.rep.googleapis.com/"
    },
    {
      "endpointUrl": "https://bigquerymigration.asia-south1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "asia-south1"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerymigration.asia-south2.rep.googleapis.com/",
      "location": "asia-south2"
    },
    {
      "description": "Regional Endpoint",
      "location": "asia-southeast1",
      "endpointUrl": "https://bigquerymigration.asia-southeast1.rep.googleapis.com/"
    },
    {
      "location": "australia-southeast1",
      "endpointUrl": "https://bigquerymigration.australia-southeast1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-west1",
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerymigration.europe-west1.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "location": "europe-west2",
      "endpointUrl": "https://bigquerymigration.europe-west2.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerymigration.europe-west3.rep.googleapis.com/",
      "location": "europe-west3"
    },
    {
      "location": "europe-west4",
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerymigration.europe-west4.rep.googleapis.com/"
    },
    {
      "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"
    },
    {
      "location": "europe-west9",
      "endpointUrl": "https://bigquerymigration.europe-west9.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "me-central2",
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerymigration.me-central2.rep.googleapis.com/"
    },
    {
      "endpointUrl": "https://bigquerymigration.northamerica-northeast1.rep.googleapis.com/",
      "location": "northamerica-northeast1",
      "description": "Regional Endpoint"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerymigration.northamerica-northeast2.rep.googleapis.com/",
      "location": "northamerica-northeast2"
    },
    {
      "description": "Regional Endpoint",
      "location": "southamerica-east1",
      "endpointUrl": "https://bigquerymigration.southamerica-east1.rep.googleapis.com/"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-central1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-central1"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-central2.rep.googleapis.com/",
      "location": "us-central2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-east1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-east1"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-east4.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-east4"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-east5.rep.googleapis.com/",
      "location": "us-east5",
      "description": "Regional Endpoint"
    },
    {
      "description": "Regional Endpoint",
      "location": "us-east7",
      "endpointUrl": "https://bigquerymigration.us-east7.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerymigration.us-south1.rep.googleapis.com/",
      "location": "us-south1"
    },
    {
      "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"
    },
    {
      "location": "us-west3",
      "endpointUrl": "https://bigquerymigration.us-west3.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-west4.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-west4"
    },
    {
      "endpointUrl": "https://bigquerymigration.us-west8.rep.googleapis.com/",
      "location": "us-west8",
      "description": "Regional Endpoint"
    }
  ],
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "rootUrl": "https://bigquerymigration.googleapis.com/",
  "batchPath": "batch",
  "id": "bigquerymigration:v2alpha",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/bigquerymigration": {
          "description": "See, edit, configure, and delete your Google Cloud BigQuery Migration data and see the email address for your Google Account"
        },
        "https://www.googleapis.com/auth/bigquerymigration.readonly": {
          "description": "See your Google Cloud BigQuery Migration data and the email address of your Google Account"
        },
        "https://www.googleapis.com/auth/devstorage.read_only": {
          "description": "View your data in Google Cloud Storage"
        },
        "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."
        }
      }
    }
  },
  "ownerName": "Google"
}
