"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.wrappers_pb2
import qwak.automation.v1.auto_scaling_pb2
import qwak.automation.v1.common_pb2
import qwak.batch_job.v1.batch_job_service_pb2
import qwak.user_application.common.v0.resources_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _GpuType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _GpuTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_GpuType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID: _GpuType.ValueType  # 0
    NVIDIA_K80: _GpuType.ValueType  # 1
    NVIDIA_V100: _GpuType.ValueType  # 2
    NVIDIA_A100: _GpuType.ValueType  # 3
    NVIDIA_T4: _GpuType.ValueType  # 4
    NVIDIA_A10G: _GpuType.ValueType  # 5
    NVIDIA_L4: _GpuType.ValueType  # 6

class GpuType(_GpuType, metaclass=_GpuTypeEnumTypeWrapper): ...

INVALID: GpuType.ValueType  # 0
NVIDIA_K80: GpuType.ValueType  # 1
NVIDIA_V100: GpuType.ValueType  # 2
NVIDIA_A100: GpuType.ValueType  # 3
NVIDIA_T4: GpuType.ValueType  # 4
NVIDIA_A10G: GpuType.ValueType  # 5
NVIDIA_L4: GpuType.ValueType  # 6
global___GpuType = GpuType

class _MemoryUnit:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _MemoryUnitEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MemoryUnit.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UNKNOWN: _MemoryUnit.ValueType  # 0
    MIB: _MemoryUnit.ValueType  # 1
    GIB: _MemoryUnit.ValueType  # 2

class MemoryUnit(_MemoryUnit, metaclass=_MemoryUnitEnumTypeWrapper):
    """Should be common"""

UNKNOWN: MemoryUnit.ValueType  # 0
MIB: MemoryUnit.ValueType  # 1
GIB: MemoryUnit.ValueType  # 2
global___MemoryUnit = MemoryUnit

class _PurchaseOption:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PurchaseOptionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PurchaseOption.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    ON_DEMAND: _PurchaseOption.ValueType  # 0
    SPOT: _PurchaseOption.ValueType  # 1

class PurchaseOption(_PurchaseOption, metaclass=_PurchaseOptionEnumTypeWrapper): ...

ON_DEMAND: PurchaseOption.ValueType  # 0
SPOT: PurchaseOption.ValueType  # 1
global___PurchaseOption = PurchaseOption

class Action(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BUILD_DEPLOY_FIELD_NUMBER: builtins.int
    BATCH_EXECUTION_FIELD_NUMBER: builtins.int
    @property
    def build_deploy(self) -> global___BuildAndDeployAction: ...
    @property
    def batch_execution(self) -> global___BatchExecutionAction: ...
    def __init__(
        self,
        *,
        build_deploy: global___BuildAndDeployAction | None = ...,
        batch_execution: global___BatchExecutionAction | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "batch_execution", b"batch_execution", "build_deploy", b"build_deploy"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "batch_execution", b"batch_execution", "build_deploy", b"build_deploy"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["action", b"action"]) -> typing_extensions.Literal["build_deploy", "batch_execution"] | None: ...

global___Action = Action

class BatchExecutionAction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EXECUTE_BATCH_JOB_FIELD_NUMBER: builtins.int
    @property
    def execute_batch_job(self) -> qwak.batch_job.v1.batch_job_service_pb2.BatchJobRequest: ...
    def __init__(
        self,
        *,
        execute_batch_job: qwak.batch_job.v1.batch_job_service_pb2.BatchJobRequest | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["execute_batch_job", b"execute_batch_job"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["execute_batch_job", b"execute_batch_job"]) -> None: ...

global___BatchExecutionAction = BatchExecutionAction

class BuildAndDeployAction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BUILD_SPEC_FIELD_NUMBER: builtins.int
    DEPLOYMENT_CONDITION_FIELD_NUMBER: builtins.int
    DEPLOYMENT_SPEC_FIELD_NUMBER: builtins.int
    @property
    def build_spec(self) -> global___BuildSpec: ...
    @property
    def deployment_condition(self) -> global___DeploymentCondition: ...
    @property
    def deployment_spec(self) -> global___DeploymentSpec: ...
    def __init__(
        self,
        *,
        build_spec: global___BuildSpec | None = ...,
        deployment_condition: global___DeploymentCondition | None = ...,
        deployment_spec: global___DeploymentSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["build_spec", b"build_spec", "deployment_condition", b"deployment_condition", "deployment_spec", b"deployment_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["build_spec", b"build_spec", "deployment_condition", b"deployment_condition", "deployment_spec", b"deployment_spec"]) -> None: ...

global___BuildAndDeployAction = BuildAndDeployAction

class DeploymentCondition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BUILD_METRIC_FIELD_NUMBER: builtins.int
    @property
    def build_metric(self) -> global___BuildMetricCondition: ...
    def __init__(
        self,
        *,
        build_metric: global___BuildMetricCondition | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["build_metric", b"build_metric", "condition", b"condition"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["build_metric", b"build_metric", "condition", b"condition"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["condition", b"condition"]) -> typing_extensions.Literal["build_metric"] | None: ...

global___DeploymentCondition = DeploymentCondition

class BuildMetricCondition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    METRIC_NAME_FIELD_NUMBER: builtins.int
    THRESHOLD_DIRECTION_FIELD_NUMBER: builtins.int
    THRESHOLD_FIELD_NUMBER: builtins.int
    metric_name: builtins.str
    """The metric name to check"""
    threshold_direction: qwak.automation.v1.common_pb2.MetricThresholdDirection.ValueType
    """Metric direction to check"""
    threshold: builtins.str
    """The threshold to decide if condition met"""
    def __init__(
        self,
        *,
        metric_name: builtins.str = ...,
        threshold_direction: qwak.automation.v1.common_pb2.MetricThresholdDirection.ValueType = ...,
        threshold: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["metric_name", b"metric_name", "threshold", b"threshold", "threshold_direction", b"threshold_direction"]) -> None: ...

global___BuildMetricCondition = BuildMetricCondition

class DeploymentSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEPLOYMENT_SIZE_FIELD_NUMBER: builtins.int
    ADVANCED_OPTIONS_FIELD_NUMBER: builtins.int
    SELECTED_VARIATION_NAME_FIELD_NUMBER: builtins.int
    ENVIRONMENTS_FIELD_NUMBER: builtins.int
    ENV_VARS_FIELD_NUMBER: builtins.int
    @property
    def deployment_size(self) -> global___DeploymentSize:
        """The deployment"""
    @property
    def advanced_options(self) -> global___AdvancedDeploymentOptions: ...
    selected_variation_name: builtins.str
    """The selected variation name"""
    @property
    def environments(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """The selected environment names"""
    @property
    def env_vars(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Environment variables for the model code"""
    def __init__(
        self,
        *,
        deployment_size: global___DeploymentSize | None = ...,
        advanced_options: global___AdvancedDeploymentOptions | None = ...,
        selected_variation_name: builtins.str = ...,
        environments: collections.abc.Iterable[builtins.str] | None = ...,
        env_vars: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["advanced_options", b"advanced_options", "deployment_size", b"deployment_size"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["advanced_options", b"advanced_options", "deployment_size", b"deployment_size", "env_vars", b"env_vars", "environments", b"environments", "selected_variation_name", b"selected_variation_name"]) -> None: ...

global___DeploymentSpec = DeploymentSpec

class AdvancedDeploymentOptions(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NUMBER_OF_HTTP_SERVER_WORKERS_FIELD_NUMBER: builtins.int
    HTTP_REQUEST_TIMEOUT_MS_FIELD_NUMBER: builtins.int
    DAEMON_MODE_FIELD_NUMBER: builtins.int
    CUSTOM_IAM_ROLE_ARN_FIELD_NUMBER: builtins.int
    AUTO_SCALING_CONFIG_FIELD_NUMBER: builtins.int
    MAX_BATCH_SIZE_FIELD_NUMBER: builtins.int
    DEPLOYMENT_PROCESS_TIMEOUT_LIMIT_FIELD_NUMBER: builtins.int
    SERVICE_ACCOUNT_KEY_SECRET_NAME_FIELD_NUMBER: builtins.int
    number_of_http_server_workers: builtins.int
    """Amount of http server workers"""
    http_request_timeout_ms: builtins.int
    """Http request timeout in ms"""
    daemon_mode: builtins.bool
    """Serve model container in daemon mode"""
    custom_iam_role_arn: builtins.str
    """Custom IAM Role ARN"""
    @property
    def auto_scaling_config(self) -> qwak.automation.v1.auto_scaling_pb2.AutoScalingConfig:
        """Auto scaling config"""
    max_batch_size: builtins.int
    """Max batch size of records"""
    deployment_process_timeout_limit: builtins.int
    """The timeout for the deployment (in seconds)"""
    service_account_key_secret_name: builtins.str
    """Custom service account for GCP"""
    def __init__(
        self,
        *,
        number_of_http_server_workers: builtins.int = ...,
        http_request_timeout_ms: builtins.int = ...,
        daemon_mode: builtins.bool = ...,
        custom_iam_role_arn: builtins.str = ...,
        auto_scaling_config: qwak.automation.v1.auto_scaling_pb2.AutoScalingConfig | None = ...,
        max_batch_size: builtins.int = ...,
        deployment_process_timeout_limit: builtins.int = ...,
        service_account_key_secret_name: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["auto_scaling_config", b"auto_scaling_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["auto_scaling_config", b"auto_scaling_config", "custom_iam_role_arn", b"custom_iam_role_arn", "daemon_mode", b"daemon_mode", "deployment_process_timeout_limit", b"deployment_process_timeout_limit", "http_request_timeout_ms", b"http_request_timeout_ms", "max_batch_size", b"max_batch_size", "number_of_http_server_workers", b"number_of_http_server_workers", "service_account_key_secret_name", b"service_account_key_secret_name"]) -> None: ...

global___AdvancedDeploymentOptions = AdvancedDeploymentOptions

class DeploymentSize(google.protobuf.message.Message):
    """Should be common - from deployment manager"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NUMBER_OF_PODS_FIELD_NUMBER: builtins.int
    CPU_FIELD_NUMBER: builtins.int
    MEMORY_AMOUNT_FIELD_NUMBER: builtins.int
    MEMORY_UNITS_FIELD_NUMBER: builtins.int
    GPU_RESOURCES_FIELD_NUMBER: builtins.int
    CLIENT_POD_COMPUTE_RESOURCES_FIELD_NUMBER: builtins.int
    number_of_pods: builtins.int
    """Count of pods to deploy."""
    cpu: builtins.float
    """Amount of CPU cores"""
    memory_amount: builtins.int
    """Amount of memory"""
    memory_units: global___MemoryUnit.ValueType
    """Units type of memory"""
    @property
    def gpu_resources(self) -> global___GpuResources:
        """GPU Resource for deployed model"""
    @property
    def client_pod_compute_resources(self) -> qwak.user_application.common.v0.resources_pb2.ClientPodComputeResources:
        """Client pod compute resources"""
    def __init__(
        self,
        *,
        number_of_pods: builtins.int = ...,
        cpu: builtins.float = ...,
        memory_amount: builtins.int = ...,
        memory_units: global___MemoryUnit.ValueType = ...,
        gpu_resources: global___GpuResources | None = ...,
        client_pod_compute_resources: qwak.user_application.common.v0.resources_pb2.ClientPodComputeResources | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["client_pod_compute_resources", b"client_pod_compute_resources", "gpu_resources", b"gpu_resources"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["client_pod_compute_resources", b"client_pod_compute_resources", "cpu", b"cpu", "gpu_resources", b"gpu_resources", "memory_amount", b"memory_amount", "memory_units", b"memory_units", "number_of_pods", b"number_of_pods"]) -> None: ...

global___DeploymentSize = DeploymentSize

class BuildSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class ParametersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    GIT_MODEL_SOURCE_FIELD_NUMBER: builtins.int
    PARAMETERS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    BASE_IMAGE_FIELD_NUMBER: builtins.int
    ASSUMED_IAM_ROLE_FIELD_NUMBER: builtins.int
    RESOURCE_FIELD_NUMBER: builtins.int
    MAIN_DIR_FIELD_NUMBER: builtins.int
    DEPENDENCY_FILE_PATH_FIELD_NUMBER: builtins.int
    ENV_VARS_FIELD_NUMBER: builtins.int
    GPU_COMPATIBLE_FIELD_NUMBER: builtins.int
    PUSH_IMAGE_FIELD_NUMBER: builtins.int
    PURCHASE_OPTION_FIELD_NUMBER: builtins.int
    SERVICE_ACCOUNT_KEY_SECRET_NAME_FIELD_NUMBER: builtins.int
    PROVISION_INSTANCE_TIMEOUT_FIELD_NUMBER: builtins.int
    @property
    def git_model_source(self) -> global___GitModelSource:
        """Git Details to get model from."""
    @property
    def parameters(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Parameters for the build"""
    @property
    def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Tags to save on the build"""
    base_image: builtins.str
    assumed_iam_role: builtins.str
    @property
    def resource(self) -> global___Resources: ...
    main_dir: builtins.str
    """The main dir of the model"""
    dependency_file_path: builtins.str
    """The custom dependency file path."""
    @property
    def env_vars(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Environment variables for the model code"""
    gpu_compatible: builtins.bool
    """If the model is GPU compatible"""
    @property
    def push_image(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    purchase_option: global___PurchaseOption.ValueType
    service_account_key_secret_name: builtins.str
    """Custom service account for GCP"""
    provision_instance_timeout: builtins.int
    def __init__(
        self,
        *,
        git_model_source: global___GitModelSource | None = ...,
        parameters: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        tags: collections.abc.Iterable[builtins.str] | None = ...,
        base_image: builtins.str = ...,
        assumed_iam_role: builtins.str = ...,
        resource: global___Resources | None = ...,
        main_dir: builtins.str = ...,
        dependency_file_path: builtins.str = ...,
        env_vars: collections.abc.Iterable[builtins.str] | None = ...,
        gpu_compatible: builtins.bool = ...,
        push_image: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        purchase_option: global___PurchaseOption.ValueType = ...,
        service_account_key_secret_name: builtins.str = ...,
        provision_instance_timeout: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["git_model_source", b"git_model_source", "push_image", b"push_image", "resource", b"resource"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["assumed_iam_role", b"assumed_iam_role", "base_image", b"base_image", "dependency_file_path", b"dependency_file_path", "env_vars", b"env_vars", "git_model_source", b"git_model_source", "gpu_compatible", b"gpu_compatible", "main_dir", b"main_dir", "parameters", b"parameters", "provision_instance_timeout", b"provision_instance_timeout", "purchase_option", b"purchase_option", "push_image", b"push_image", "resource", b"resource", "service_account_key_secret_name", b"service_account_key_secret_name", "tags", b"tags"]) -> None: ...

global___BuildSpec = BuildSpec

class Resources(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CPU_RESOURCES_FIELD_NUMBER: builtins.int
    GPU_RESOURCES_FIELD_NUMBER: builtins.int
    CLIENT_POD_COMPUTE_RESOURCES_FIELD_NUMBER: builtins.int
    @property
    def cpu_resources(self) -> global___CpuResources:
        """CPU Properties"""
    @property
    def gpu_resources(self) -> global___GpuResources:
        """GPU Properties"""
    @property
    def client_pod_compute_resources(self) -> qwak.user_application.common.v0.resources_pb2.ClientPodComputeResources:
        """Client pod compute resources"""
    def __init__(
        self,
        *,
        cpu_resources: global___CpuResources | None = ...,
        gpu_resources: global___GpuResources | None = ...,
        client_pod_compute_resources: qwak.user_application.common.v0.resources_pb2.ClientPodComputeResources | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["client_pod_compute_resources", b"client_pod_compute_resources", "cpu_resources", b"cpu_resources", "gpu_resources", b"gpu_resources", "resource", b"resource"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["client_pod_compute_resources", b"client_pod_compute_resources", "cpu_resources", b"cpu_resources", "gpu_resources", b"gpu_resources", "resource", b"resource"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["resource", b"resource"]) -> typing_extensions.Literal["cpu_resources", "gpu_resources", "client_pod_compute_resources"] | None: ...

global___Resources = Resources

class CpuResources(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CPU_FIELD_NUMBER: builtins.int
    MEMORY_AMOUNT_FIELD_NUMBER: builtins.int
    MEMORY_UNITS_FIELD_NUMBER: builtins.int
    cpu: builtins.float
    """Amount of CPU cores"""
    memory_amount: builtins.int
    """Amount of memory"""
    memory_units: global___MemoryUnit.ValueType
    """Units type of memory"""
    def __init__(
        self,
        *,
        cpu: builtins.float = ...,
        memory_amount: builtins.int = ...,
        memory_units: global___MemoryUnit.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cpu", b"cpu", "memory_amount", b"memory_amount", "memory_units", b"memory_units"]) -> None: ...

global___CpuResources = CpuResources

class GpuResources(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GPU_TYPE_FIELD_NUMBER: builtins.int
    GPU_AMOUNT_FIELD_NUMBER: builtins.int
    gpu_type: global___GpuType.ValueType
    """The type of the GPU"""
    gpu_amount: builtins.int
    """Amount of GPUs"""
    def __init__(
        self,
        *,
        gpu_type: global___GpuType.ValueType = ...,
        gpu_amount: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["gpu_amount", b"gpu_amount", "gpu_type", b"gpu_type"]) -> None: ...

global___GpuResources = GpuResources

class GitModelSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GIT_URI_FIELD_NUMBER: builtins.int
    GIT_CREDENTIALS_SECRET_NAME_FIELD_NUMBER: builtins.int
    GIT_BRANCH_FIELD_NUMBER: builtins.int
    GIT_SSH_SECRET_NAME_FIELD_NUMBER: builtins.int
    git_uri: builtins.str
    """git uri to fetch models code from"""
    git_credentials_secret_name: builtins.str
    """Secret to fetch git credentials, overrides git_credentials if set"""
    git_branch: builtins.str
    git_ssh_secret_name: builtins.str
    """Ssh keu to fetch git credentials, overrides git_secret_ssh"""
    def __init__(
        self,
        *,
        git_uri: builtins.str = ...,
        git_credentials_secret_name: builtins.str = ...,
        git_branch: builtins.str = ...,
        git_ssh_secret_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["git_branch", b"git_branch", "git_credentials_secret_name", b"git_credentials_secret_name", "git_ssh_secret_name", b"git_ssh_secret_name", "git_uri", b"git_uri"]) -> None: ...

global___GitModelSource = GitModelSource
