Translates a large volume of text in asynchronous batch mode.
        This function provides real-time output as the inputs are being processed.
        If caller cancels a request, the partial results (for an input file, it's
        all or nothing) may still be available on the specified output location.

        This call returns immediately and you can
        use google.longrunning.Operation.name to poll the status of the call.

        Example:
            >>> from google.cloud import translate_v3beta1
            >>>
            >>> client = translate_v3beta1.TranslationServiceClient()
            >>>
            >>> # TODO: Initialize `source_language_code`:
            >>> source_language_code = ''
            >>>
            >>> # TODO: Initialize `target_language_codes`:
            >>> target_language_codes = []
            >>>
            >>> # TODO: Initialize `input_configs`:
            >>> input_configs = []
            >>>
            >>> # TODO: Initialize `output_config`:
            >>> output_config = {}
            >>>
            >>> response = client.batch_translate_text(source_language_code, target_language_codes, input_configs, output_config)
            >>>
            >>> def callback(operation_future):
            ...     # Handle result.
            ...     result = operation_future.result()
            >>>
            >>> response.add_done_callback(callback)
            >>>
            >>> # Handle metadata.
            >>> metadata = response.metadata()

        Args:
            source_language_code (str): Required. Source language code.
            target_language_codes (list[str]): Required. Specify up to 10 language codes here.
            input_configs (list[Union[dict, ~google.cloud.translate_v3beta1.types.InputConfig]]): Required. Input configurations.
                The total number of files matched should be <= 1000.
                The total content size should be <= 100M Unicode codepoints.
                The files must use UTF-8 encoding.

                If a dict is provided, it must be of the same form as the protobuf
                message :class:`~google.cloud.translate_v3beta1.types.InputConfig`
            output_config (Union[dict, ~google.cloud.translate_v3beta1.types.OutputConfig]): Required. Output configuration.
                If 2 input configs match to the same file (that is, same input path),
                we don't generate output for duplicate inputs.

                If a dict is provided, it must be of the same form as the protobuf
                message :class:`~google.cloud.translate_v3beta1.types.OutputConfig`
            parent (str): Optional. Only used when making regionalized call.
                Format:
                projects/{project-id}/locations/{location-id}.

                Only custom models/glossaries within the same location-id can be used.
                Otherwise 400 is returned.
            models (dict[str -> str]): Optional. The models to use for translation. Map's key is target language
                code. Map's value is model name. Value can be a built-in general model,
                or a custom model built by AutoML.

                The value format depends on model type:
                1. Custom models:
                projects/{project-id}/locations/{location-id}/models/{model-id}.
                2. General (built-in) models:
                projects/{project-id}/locations/{location-id}/models/general/nmt
                projects/{project-id}/locations/{location-id}/models/general/base

                If the map is empty or a specific model is
                not requested for a language pair, then default google model is used.
            glossaries (dict[str -> Union[dict, ~google.cloud.translate_v3beta1.types.TranslateTextGlossaryConfig]]): Optional. Glossaries to be applied for translation.
                It's keyed by target language code.

                If a dict is provided, it must be of the same form as the protobuf
                message :class:`~google.cloud.translate_v3beta1.types.TranslateTextGlossaryConfig`
            retry (Optional[google.api_core.retry.Retry]):  A retry object used
                to retry requests. If ``None`` is specified, requests will not
                be retried.
            timeout (Optional[float]): The amount of time, in seconds, to wait
                for the request to complete. Note that if ``retry`` is
                specified, the timeout applies to each individual attempt.
            metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata
                that is provided to the method.

        Returns:
            A :class:`~google.cloud.translate_v3beta1.types._OperationFuture` instance.

        Raises:
            google.api_core.exceptions.GoogleAPICallError: If the request
                    failed for any reason.
            google.api_core.exceptions.RetryError: If the request failed due
                    to a retryable error and retry attempts failed.
            ValueError: If the parameters are invalid.

def batch_translate_text(
        self,
        source_language_code,
        target_language_codes,
        input_configs,
        output_config,
        parent=None,
        models=None,
        glossaries=None,
        retry=google.api_core.gapic_v1.method.DEFAULT,
        timeout=google.api_core.gapic_v1.method.DEFAULT,
        metadata=None,
    ):
        """
        Translates a large volume of text in asynchronous batch mode.
        This function provides real-time output as the inputs are being processed.
        If caller cancels a request, the partial results (for an input file, it's
        all or nothing) may still be available on the specified output location.

        This call returns immediately and you can
        use google.longrunning.Operation.name to poll the status of the call.

        Example:
            >>> from google.cloud import translate_v3beta1
            >>>
            >>> client = translate_v3beta1.TranslationServiceClient()
            >>>
            >>> # TODO: Initialize `source_language_code`:
            >>> source_language_code = ''
            >>>
            >>> # TODO: Initialize `target_language_codes`:
            >>> target_language_codes = []
            >>>
            >>> # TODO: Initialize `input_configs`:
            >>> input_configs = []
            >>>
            >>> # TODO: Initialize `output_config`:
            >>> output_config = {}
            >>>
            >>> response = client.batch_translate_text(source_language_code, target_language_codes, input_configs, output_config)
            >>>
            >>> def callback(operation_future):
            ...     # Handle result.
            ...     result = operation_future.result()
            >>>
            >>> response.add_done_callback(callback)
            >>>
            >>> # Handle metadata.
            >>> metadata = response.metadata()

        Args:
            source_language_code (str): Required. Source language code.
            target_language_codes (list[str]): Required. Specify up to 10 language codes here.
            input_configs (list[Union[dict, ~google.cloud.translate_v3beta1.types.InputConfig]]): Required. Input configurations.
                The total number of files matched should be <= 1000.
                The total content size should be <= 100M Unicode codepoints.
                The files must use UTF-8 encoding.

                If a dict is provided, it must be of the same form as the protobuf
                message :class:`~google.cloud.translate_v3beta1.types.InputConfig`
            output_config (Union[dict, ~google.cloud.translate_v3beta1.types.OutputConfig]): Required. Output configuration.
                If 2 input configs match to the same file (that is, same input path),
                we don't generate output for duplicate inputs.

                If a dict is provided, it must be of the same form as the protobuf
                message :class:`~google.cloud.translate_v3beta1.types.OutputConfig`
            parent (str): Optional. Only used when making regionalized call.
                Format:
                projects/{project-id}/locations/{location-id}.

                Only custom models/glossaries within the same location-id can be used.
                Otherwise 400 is returned.
            models (dict[str -> str]): Optional. The models to use for translation. Map's key is target language
                code. Map's value is model name. Value can be a built-in general model,
                or a custom model built by AutoML.

                The value format depends on model type:
                1. Custom models:
                projects/{project-id}/locations/{location-id}/models/{model-id}.
                2. General (built-in) models:
                projects/{project-id}/locations/{location-id}/models/general/nmt
                projects/{project-id}/locations/{location-id}/models/general/base

                If the map is empty or a specific model is
                not requested for a language pair, then default google model is used.
            glossaries (dict[str -> Union[dict, ~google.cloud.translate_v3beta1.types.TranslateTextGlossaryConfig]]): Optional. Glossaries to be applied for translation.
                It's keyed by target language code.

                If a dict is provided, it must be of the same form as the protobuf
                message :class:`~google.cloud.translate_v3beta1.types.TranslateTextGlossaryConfig`
            retry (Optional[google.api_core.retry.Retry]):  A retry object used
                to retry requests. If ``None`` is specified, requests will not
                be retried.
            timeout (Optional[float]): The amount of time, in seconds, to wait
                for the request to complete. Note that if ``retry`` is
                specified, the timeout applies to each individual attempt.
            metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata
                that is provided to the method.

        Returns:
            A :class:`~google.cloud.translate_v3beta1.types._OperationFuture` instance.

        Raises:
            google.api_core.exceptions.GoogleAPICallError: If the request
                    failed for any reason.
            google.api_core.exceptions.RetryError: If the request failed due
                    to a retryable error and retry attempts failed.
            ValueError: If the parameters are invalid.
        """
        # Wrap the transport method to add retry and timeout logic.
        if "batch_translate_text" not in self._inner_api_calls:
            self._inner_api_calls[
                "batch_translate_text"
            ] = google.api_core.gapic_v1.method.wrap_method(
                self.transport.batch_translate_text,
                default_retry=self._method_configs["BatchTranslateText"].retry,
                default_timeout=self._method_configs["BatchTranslateText"].timeout,
                client_info=self._client_info,
            )

        request = translation_service_pb2.BatchTranslateTextRequest(
            source_language_code=source_language_code,
            target_language_codes=target_language_codes,
            input_configs=input_configs,
            output_config=output_config,
            parent=parent,
            models=models,
            glossaries=glossaries,
        )
        if metadata is None:
            metadata = []
        metadata = list(metadata)
        try:
            routing_header = [("parent", parent)]
        except AttributeError:
            pass
        else:
            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
                routing_header
            )
            metadata.append(routing_metadata)

        operation = self._inner_api_calls["batch_translate_text"](
            request, retry=retry, timeout=timeout, metadata=metadata
        )
        return google.api_core.operation.from_gapic(
            operation,
            self.transport._operations_client,
            translation_service_pb2.BatchTranslateResponse,
            metadata_type=translation_service_pb2.BatchTranslateMetadata,
        )