# Path: google/cloud/dataflow_v1beta3/types/jobs.py
# class KindType(proto.Enum):
# class JobState(proto.Enum):
# class JobView(proto.Enum):
# class Job(proto.Message):
# class DatastoreIODetails(proto.Message):
# class PubSubIODetails(proto.Message):
# class FileIODetails(proto.Message):
# class BigTableIODetails(proto.Message):
# class BigQueryIODetails(proto.Message):
# class SpannerIODetails(proto.Message):
# class SdkVersion(proto.Message):
#     class SdkSupportStatus(proto.Enum):
# class JobMetadata(proto.Message):
# class ExecutionStageState(proto.Message):
# class PipelineDescription(proto.Message):
# class TransformSummary(proto.Message):
# class ExecutionStageSummary(proto.Message):
#     class StageSource(proto.Message):
#     class ComponentTransform(proto.Message):
#     class ComponentSource(proto.Message):
# class DisplayData(proto.Message):
# class Step(proto.Message):
# class JobExecutionInfo(proto.Message):
# class JobExecutionStageInfo(proto.Message):
# class CreateJobRequest(proto.Message):
# class GetJobRequest(proto.Message):
# class UpdateJobRequest(proto.Message):
# class ListJobsRequest(proto.Message):
#     class Filter(proto.Enum):
# class FailedLocation(proto.Message):
# class ListJobsResponse(proto.Message):
# class SnapshotJobRequest(proto.Message):
# class CheckActiveJobsRequest(proto.Message):
# class CheckActiveJobsResponse(proto.Message):
#     UNKNOWN_KIND = 0
#     PAR_DO_KIND = 1
#     GROUP_BY_KEY_KIND = 2
#     FLATTEN_KIND = 3
#     READ_KIND = 4
#     WRITE_KIND = 5
#     CONSTANT_KIND = 6
#     SINGLETON_KIND = 7
#     SHUFFLE_KIND = 8
#     JOB_STATE_UNKNOWN = 0
#     JOB_STATE_STOPPED = 1
#     JOB_STATE_RUNNING = 2
#     JOB_STATE_DONE = 3
#     JOB_STATE_FAILED = 4
#     JOB_STATE_CANCELLED = 5
#     JOB_STATE_UPDATED = 6
#     JOB_STATE_DRAINING = 7
#     JOB_STATE_DRAINED = 8
#     JOB_STATE_PENDING = 9
#     JOB_STATE_CANCELLING = 10
#     JOB_STATE_QUEUED = 11
#     JOB_STATE_RESOURCE_CLEANING_UP = 12
#     JOB_VIEW_UNKNOWN = 0
#     JOB_VIEW_SUMMARY = 1
#     JOB_VIEW_ALL = 2
#     JOB_VIEW_DESCRIPTION = 3
#         UNKNOWN = 0
#         SUPPORTED = 1
#         STALE = 2
#         DEPRECATED = 3
#         UNSUPPORTED = 4
#         UNKNOWN = 0
#         ALL = 1
#         TERMINATED = 2
#         ACTIVE = 3
#     def raw_page(self):
# 
# Path: google/cloud/dataflow_v1beta3/types/templates.py
# class ParameterType(proto.Enum):
# class LaunchFlexTemplateResponse(proto.Message):
# class ContainerSpec(proto.Message):
# class LaunchFlexTemplateParameter(proto.Message):
# class FlexTemplateRuntimeEnvironment(proto.Message):
# class LaunchFlexTemplateRequest(proto.Message):
# class RuntimeEnvironment(proto.Message):
# class ParameterMetadata(proto.Message):
# class TemplateMetadata(proto.Message):
# class SDKInfo(proto.Message):
#     class Language(proto.Enum):
# class RuntimeMetadata(proto.Message):
# class CreateJobFromTemplateRequest(proto.Message):
# class GetTemplateRequest(proto.Message):
#     class TemplateView(proto.Enum):
# class GetTemplateResponse(proto.Message):
#     class TemplateType(proto.Enum):
# class LaunchTemplateParameters(proto.Message):
# class LaunchTemplateRequest(proto.Message):
# class LaunchTemplateResponse(proto.Message):
# class InvalidTemplateParameters(proto.Message):
#     class ParameterViolation(proto.Message):
# class DynamicTemplateLaunchParams(proto.Message):
#     DEFAULT = 0
#     TEXT = 1
#     GCS_READ_BUCKET = 2
#     GCS_WRITE_BUCKET = 3
#     GCS_READ_FILE = 4
#     GCS_WRITE_FILE = 5
#     GCS_READ_FOLDER = 6
#     GCS_WRITE_FOLDER = 7
#     PUBSUB_TOPIC = 8
#     PUBSUB_SUBSCRIPTION = 9
#         UNKNOWN = 0
#         JAVA = 1
#         PYTHON = 2
#         METADATA_ONLY = 0
#         UNKNOWN = 0
#         LEGACY = 1
#         FLEX = 2


import abc
import pkg_resources
import google.auth  # type: ignore
import google.api_core
from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
from google.api_core import exceptions as core_exceptions
from google.api_core import gapic_v1
from google.api_core import retry as retries
from google.auth import credentials as ga_credentials  # type: ignore
from google.oauth2 import service_account  # type: ignore
from google.cloud.dataflow_v1beta3.types import jobs
from google.cloud.dataflow_v1beta3.types import templates

    def _prep_wrapped_messages(self, client_info):
        # Precompute the wrapped methods.
        self._wrapped_methods = {
            self.create_job_from_template: gapic_v1.method.wrap_method(
                self.create_job_from_template,
                default_timeout=None,
                client_info=client_info,
            ),
            self.launch_template: gapic_v1.method.wrap_method(
                self.launch_template, default_timeout=None, client_info=client_info,
            ),
            self.get_template: gapic_v1.method.wrap_method(
                self.get_template, default_timeout=None, client_info=client_info,
            ),
        }

    def close(self):
        """Closes resources associated with the transport.

       .. warning::
            Only call this method if the transport is NOT shared
            with other clients - this may cause errors in other clients!
        """
        raise NotImplementedError()

    @property
    def create_job_from_template(
        self,
    ) -> Callable[

# Path: google/cloud/dataflow_v1beta3/types/jobs.py
# class KindType(proto.Enum):
# class JobState(proto.Enum):
# class JobView(proto.Enum):
# class Job(proto.Message):
# class DatastoreIODetails(proto.Message):
# class PubSubIODetails(proto.Message):
# class FileIODetails(proto.Message):
# class BigTableIODetails(proto.Message):
# class BigQueryIODetails(proto.Message):
# class SpannerIODetails(proto.Message):
# class SdkVersion(proto.Message):
#     class SdkSupportStatus(proto.Enum):
# class JobMetadata(proto.Message):
# class ExecutionStageState(proto.Message):
# class PipelineDescription(proto.Message):
# class TransformSummary(proto.Message):
# class ExecutionStageSummary(proto.Message):
#     class StageSource(proto.Message):
#     class ComponentTransform(proto.Message):
#     class ComponentSource(proto.Message):
# class DisplayData(proto.Message):
# class Step(proto.Message):
# class JobExecutionInfo(proto.Message):
# class JobExecutionStageInfo(proto.Message):
# class CreateJobRequest(proto.Message):
# class GetJobRequest(proto.Message):
# class UpdateJobRequest(proto.Message):
# class ListJobsRequest(proto.Message):
#     class Filter(proto.Enum):
# class FailedLocation(proto.Message):
# class ListJobsResponse(proto.Message):
# class SnapshotJobRequest(proto.Message):
# class CheckActiveJobsRequest(proto.Message):
# class CheckActiveJobsResponse(proto.Message):
#     UNKNOWN_KIND = 0
#     PAR_DO_KIND = 1
#     GROUP_BY_KEY_KIND = 2
#     FLATTEN_KIND = 3
#     READ_KIND = 4
#     WRITE_KIND = 5
#     CONSTANT_KIND = 6
#     SINGLETON_KIND = 7
#     SHUFFLE_KIND = 8
#     JOB_STATE_UNKNOWN = 0
#     JOB_STATE_STOPPED = 1
#     JOB_STATE_RUNNING = 2
#     JOB_STATE_DONE = 3
#     JOB_STATE_FAILED = 4
#     JOB_STATE_CANCELLED = 5
#     JOB_STATE_UPDATED = 6
#     JOB_STATE_DRAINING = 7
#     JOB_STATE_DRAINED = 8
#     JOB_STATE_PENDING = 9
#     JOB_STATE_CANCELLING = 10
#     JOB_STATE_QUEUED = 11
#     JOB_STATE_RESOURCE_CLEANING_UP = 12
#     JOB_VIEW_UNKNOWN = 0
#     JOB_VIEW_SUMMARY = 1
#     JOB_VIEW_ALL = 2
#     JOB_VIEW_DESCRIPTION = 3
#         UNKNOWN = 0
#         SUPPORTED = 1
#         STALE = 2
#         DEPRECATED = 3
#         UNSUPPORTED = 4
#         UNKNOWN = 0
#         ALL = 1
#         TERMINATED = 2
#         ACTIVE = 3
#     def raw_page(self):
# 
# Path: google/cloud/dataflow_v1beta3/types/templates.py
# class ParameterType(proto.Enum):
# class LaunchFlexTemplateResponse(proto.Message):
# class ContainerSpec(proto.Message):
# class LaunchFlexTemplateParameter(proto.Message):
# class FlexTemplateRuntimeEnvironment(proto.Message):
# class LaunchFlexTemplateRequest(proto.Message):
# class RuntimeEnvironment(proto.Message):
# class ParameterMetadata(proto.Message):
# class TemplateMetadata(proto.Message):
# class SDKInfo(proto.Message):
#     class Language(proto.Enum):
# class RuntimeMetadata(proto.Message):
# class CreateJobFromTemplateRequest(proto.Message):
# class GetTemplateRequest(proto.Message):
#     class TemplateView(proto.Enum):
# class GetTemplateResponse(proto.Message):
#     class TemplateType(proto.Enum):
# class LaunchTemplateParameters(proto.Message):
# class LaunchTemplateRequest(proto.Message):
# class LaunchTemplateResponse(proto.Message):
# class InvalidTemplateParameters(proto.Message):
#     class ParameterViolation(proto.Message):
# class DynamicTemplateLaunchParams(proto.Message):
#     DEFAULT = 0
#     TEXT = 1
#     GCS_READ_BUCKET = 2
#     GCS_WRITE_BUCKET = 3
#     GCS_READ_FILE = 4
#     GCS_WRITE_FILE = 5
#     GCS_READ_FOLDER = 6
#     GCS_WRITE_FOLDER = 7
#     PUBSUB_TOPIC = 8
#     PUBSUB_SUBSCRIPTION = 9
#         UNKNOWN = 0
#         JAVA = 1
#         PYTHON = 2
#         METADATA_ONLY = 0
#         UNKNOWN = 0
#         LEGACY = 1
#         FLEX = 2


# Path: google/cloud/dataflow_v1beta3/services/templates_service/transports/base.py
import abc
import pkg_resources
import google.auth  # type: ignore
import google.api_core
from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
from google.api_core import exceptions as core_exceptions
from google.api_core import gapic_v1
from google.api_core import retry as retries
from google.auth import credentials as ga_credentials  # type: ignore
from google.oauth2 import service_account  # type: ignore
from google.cloud.dataflow_v1beta3.types import jobs
from google.cloud.dataflow_v1beta3.types import templates


    def _prep_wrapped_messages(self, client_info):
        # Precompute the wrapped methods.
        self._wrapped_methods = {
            self.create_job_from_template: gapic_v1.method.wrap_method(
                self.create_job_from_template,
                default_timeout=None,
                client_info=client_info,
            ),
            self.launch_template: gapic_v1.method.wrap_method(
                self.launch_template, default_timeout=None, client_info=client_info,
            ),
            self.get_template: gapic_v1.method.wrap_method(
                self.get_template, default_timeout=None, client_info=client_info,
            ),
        }

    def close(self):
        """Closes resources associated with the transport.

       .. warning::
            Only call this method if the transport is NOT shared
            with other clients - this may cause errors in other clients!
        """
        raise NotImplementedError()

    @property
    def create_job_from_template(
        self,
    ) -> Callable[

        [templates.CreateJobFromTemplateRequest], Union[jobs.Job, Awaitable[jobs.Job]]