# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities
from . import outputs
from ._inputs import *

__all__ = ['JobArgs', 'Job']

@pulumi.input_type
class JobArgs:
    def __init__(__self__, *,
                 environment_id: pulumi.Input[str],
                 healthchecks: pulumi.Input['JobHealthchecksArgs'],
                 schedule: pulumi.Input['JobScheduleArgs'],
                 advanced_settings_json: Optional[pulumi.Input[str]] = None,
                 auto_deploy: Optional[pulumi.Input[bool]] = None,
                 auto_preview: Optional[pulumi.Input[bool]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 deployment_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input['JobDeploymentRestrictionArgs']]]] = None,
                 deployment_stage_id: Optional[pulumi.Input[str]] = None,
                 environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableAliasArgs']]]] = None,
                 environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableOverrideArgs']]]] = None,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableArgs']]]] = None,
                 max_duration_seconds: Optional[pulumi.Input[int]] = None,
                 max_nb_restart: Optional[pulumi.Input[int]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 port: Optional[pulumi.Input[int]] = None,
                 secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretAliasArgs']]]] = None,
                 secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretOverrideArgs']]]] = None,
                 secrets: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretArgs']]]] = None,
                 source: Optional[pulumi.Input['JobSourceArgs']] = None):
        """
        The set of arguments for constructing a Job resource.
        :param pulumi.Input[str] environment_id: Id of the environment.
        :param pulumi.Input['JobHealthchecksArgs'] healthchecks: Configuration for the healthchecks that are going to be executed against your service
        :param pulumi.Input['JobScheduleArgs'] schedule: Job's schedule.
        :param pulumi.Input[str] advanced_settings_json: Advanced settings.
        :param pulumi.Input[bool] auto_deploy: Specify if the job will be automatically updated after receiving a new image tag.
        :param pulumi.Input[bool] auto_preview: Specify if the environment preview option is activated or not for this job.
        :param pulumi.Input[int] cpu: CPU of the job in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        :param pulumi.Input[Sequence[pulumi.Input['JobDeploymentRestrictionArgs']]] deployment_restrictions: List of deployment restrictions
        :param pulumi.Input[str] deployment_stage_id: Id of the deployment stage.
        :param pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableAliasArgs']]] environment_variable_aliases: List of environment variable aliases linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableOverrideArgs']]] environment_variable_overrides: List of environment variable overrides linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableArgs']]] environment_variables: List of environment variables linked to this job.
        :param pulumi.Input[int] max_duration_seconds: Job's max duration in seconds. - Must be: `>= 0`. - Default: `300`.
        :param pulumi.Input[int] max_nb_restart: Job's max number of restarts. - Must be: `>= 0`. - Default: `0`.
        :param pulumi.Input[int] memory: RAM of the job in MB [1024MB = 1GB]. - Must be: `>= 1`. - Default: `512`.
        :param pulumi.Input[str] name: Name of the job.
        :param pulumi.Input[int] port: Job's probes port. - Must be: `>= 1` and `<= 65535`.
        :param pulumi.Input[Sequence[pulumi.Input['JobSecretAliasArgs']]] secret_aliases: List of secret aliases linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobSecretOverrideArgs']]] secret_overrides: List of secret overrides linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobSecretArgs']]] secrets: List of secrets linked to this job.
        :param pulumi.Input['JobSourceArgs'] source: Job's source.
        """
        pulumi.set(__self__, "environment_id", environment_id)
        pulumi.set(__self__, "healthchecks", healthchecks)
        pulumi.set(__self__, "schedule", schedule)
        if advanced_settings_json is not None:
            pulumi.set(__self__, "advanced_settings_json", advanced_settings_json)
        if auto_deploy is not None:
            pulumi.set(__self__, "auto_deploy", auto_deploy)
        if auto_preview is not None:
            pulumi.set(__self__, "auto_preview", auto_preview)
        if cpu is not None:
            pulumi.set(__self__, "cpu", cpu)
        if deployment_restrictions is not None:
            pulumi.set(__self__, "deployment_restrictions", deployment_restrictions)
        if deployment_stage_id is not None:
            pulumi.set(__self__, "deployment_stage_id", deployment_stage_id)
        if environment_variable_aliases is not None:
            pulumi.set(__self__, "environment_variable_aliases", environment_variable_aliases)
        if environment_variable_overrides is not None:
            pulumi.set(__self__, "environment_variable_overrides", environment_variable_overrides)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if max_duration_seconds is not None:
            pulumi.set(__self__, "max_duration_seconds", max_duration_seconds)
        if max_nb_restart is not None:
            pulumi.set(__self__, "max_nb_restart", max_nb_restart)
        if memory is not None:
            pulumi.set(__self__, "memory", memory)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if secret_aliases is not None:
            pulumi.set(__self__, "secret_aliases", secret_aliases)
        if secret_overrides is not None:
            pulumi.set(__self__, "secret_overrides", secret_overrides)
        if secrets is not None:
            pulumi.set(__self__, "secrets", secrets)
        if source is not None:
            pulumi.set(__self__, "source", source)

    @property
    @pulumi.getter(name="environmentId")
    def environment_id(self) -> pulumi.Input[str]:
        """
        Id of the environment.
        """
        return pulumi.get(self, "environment_id")

    @environment_id.setter
    def environment_id(self, value: pulumi.Input[str]):
        pulumi.set(self, "environment_id", value)

    @property
    @pulumi.getter
    def healthchecks(self) -> pulumi.Input['JobHealthchecksArgs']:
        """
        Configuration for the healthchecks that are going to be executed against your service
        """
        return pulumi.get(self, "healthchecks")

    @healthchecks.setter
    def healthchecks(self, value: pulumi.Input['JobHealthchecksArgs']):
        pulumi.set(self, "healthchecks", value)

    @property
    @pulumi.getter
    def schedule(self) -> pulumi.Input['JobScheduleArgs']:
        """
        Job's schedule.
        """
        return pulumi.get(self, "schedule")

    @schedule.setter
    def schedule(self, value: pulumi.Input['JobScheduleArgs']):
        pulumi.set(self, "schedule", value)

    @property
    @pulumi.getter(name="advancedSettingsJson")
    def advanced_settings_json(self) -> Optional[pulumi.Input[str]]:
        """
        Advanced settings.
        """
        return pulumi.get(self, "advanced_settings_json")

    @advanced_settings_json.setter
    def advanced_settings_json(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "advanced_settings_json", value)

    @property
    @pulumi.getter(name="autoDeploy")
    def auto_deploy(self) -> Optional[pulumi.Input[bool]]:
        """
        Specify if the job will be automatically updated after receiving a new image tag.
        """
        return pulumi.get(self, "auto_deploy")

    @auto_deploy.setter
    def auto_deploy(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "auto_deploy", value)

    @property
    @pulumi.getter(name="autoPreview")
    def auto_preview(self) -> Optional[pulumi.Input[bool]]:
        """
        Specify if the environment preview option is activated or not for this job.
        """
        return pulumi.get(self, "auto_preview")

    @auto_preview.setter
    def auto_preview(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "auto_preview", value)

    @property
    @pulumi.getter
    def cpu(self) -> Optional[pulumi.Input[int]]:
        """
        CPU of the job in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        """
        return pulumi.get(self, "cpu")

    @cpu.setter
    def cpu(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "cpu", value)

    @property
    @pulumi.getter(name="deploymentRestrictions")
    def deployment_restrictions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobDeploymentRestrictionArgs']]]]:
        """
        List of deployment restrictions
        """
        return pulumi.get(self, "deployment_restrictions")

    @deployment_restrictions.setter
    def deployment_restrictions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobDeploymentRestrictionArgs']]]]):
        pulumi.set(self, "deployment_restrictions", value)

    @property
    @pulumi.getter(name="deploymentStageId")
    def deployment_stage_id(self) -> Optional[pulumi.Input[str]]:
        """
        Id of the deployment stage.
        """
        return pulumi.get(self, "deployment_stage_id")

    @deployment_stage_id.setter
    def deployment_stage_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "deployment_stage_id", value)

    @property
    @pulumi.getter(name="environmentVariableAliases")
    def environment_variable_aliases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableAliasArgs']]]]:
        """
        List of environment variable aliases linked to this job.
        """
        return pulumi.get(self, "environment_variable_aliases")

    @environment_variable_aliases.setter
    def environment_variable_aliases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableAliasArgs']]]]):
        pulumi.set(self, "environment_variable_aliases", value)

    @property
    @pulumi.getter(name="environmentVariableOverrides")
    def environment_variable_overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableOverrideArgs']]]]:
        """
        List of environment variable overrides linked to this job.
        """
        return pulumi.get(self, "environment_variable_overrides")

    @environment_variable_overrides.setter
    def environment_variable_overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableOverrideArgs']]]]):
        pulumi.set(self, "environment_variable_overrides", value)

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableArgs']]]]:
        """
        List of environment variables linked to this job.
        """
        return pulumi.get(self, "environment_variables")

    @environment_variables.setter
    def environment_variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableArgs']]]]):
        pulumi.set(self, "environment_variables", value)

    @property
    @pulumi.getter(name="maxDurationSeconds")
    def max_duration_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        Job's max duration in seconds. - Must be: `>= 0`. - Default: `300`.
        """
        return pulumi.get(self, "max_duration_seconds")

    @max_duration_seconds.setter
    def max_duration_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_duration_seconds", value)

    @property
    @pulumi.getter(name="maxNbRestart")
    def max_nb_restart(self) -> Optional[pulumi.Input[int]]:
        """
        Job's max number of restarts. - Must be: `>= 0`. - Default: `0`.
        """
        return pulumi.get(self, "max_nb_restart")

    @max_nb_restart.setter
    def max_nb_restart(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_nb_restart", value)

    @property
    @pulumi.getter
    def memory(self) -> Optional[pulumi.Input[int]]:
        """
        RAM of the job in MB [1024MB = 1GB]. - Must be: `>= 1`. - Default: `512`.
        """
        return pulumi.get(self, "memory")

    @memory.setter
    def memory(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "memory", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        Name of the job.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[int]]:
        """
        Job's probes port. - Must be: `>= 1` and `<= 65535`.
        """
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "port", value)

    @property
    @pulumi.getter(name="secretAliases")
    def secret_aliases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretAliasArgs']]]]:
        """
        List of secret aliases linked to this job.
        """
        return pulumi.get(self, "secret_aliases")

    @secret_aliases.setter
    def secret_aliases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretAliasArgs']]]]):
        pulumi.set(self, "secret_aliases", value)

    @property
    @pulumi.getter(name="secretOverrides")
    def secret_overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretOverrideArgs']]]]:
        """
        List of secret overrides linked to this job.
        """
        return pulumi.get(self, "secret_overrides")

    @secret_overrides.setter
    def secret_overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretOverrideArgs']]]]):
        pulumi.set(self, "secret_overrides", value)

    @property
    @pulumi.getter
    def secrets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretArgs']]]]:
        """
        List of secrets linked to this job.
        """
        return pulumi.get(self, "secrets")

    @secrets.setter
    def secrets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretArgs']]]]):
        pulumi.set(self, "secrets", value)

    @property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input['JobSourceArgs']]:
        """
        Job's source.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input['JobSourceArgs']]):
        pulumi.set(self, "source", value)


@pulumi.input_type
class _JobState:
    def __init__(__self__, *,
                 advanced_settings_json: Optional[pulumi.Input[str]] = None,
                 auto_deploy: Optional[pulumi.Input[bool]] = None,
                 auto_preview: Optional[pulumi.Input[bool]] = None,
                 built_in_environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input['JobBuiltInEnvironmentVariableArgs']]]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 deployment_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input['JobDeploymentRestrictionArgs']]]] = None,
                 deployment_stage_id: Optional[pulumi.Input[str]] = None,
                 environment_id: Optional[pulumi.Input[str]] = None,
                 environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableAliasArgs']]]] = None,
                 environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableOverrideArgs']]]] = None,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableArgs']]]] = None,
                 external_host: Optional[pulumi.Input[str]] = None,
                 healthchecks: Optional[pulumi.Input['JobHealthchecksArgs']] = None,
                 internal_host: Optional[pulumi.Input[str]] = None,
                 max_duration_seconds: Optional[pulumi.Input[int]] = None,
                 max_nb_restart: Optional[pulumi.Input[int]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 port: Optional[pulumi.Input[int]] = None,
                 schedule: Optional[pulumi.Input['JobScheduleArgs']] = None,
                 secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretAliasArgs']]]] = None,
                 secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretOverrideArgs']]]] = None,
                 secrets: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretArgs']]]] = None,
                 source: Optional[pulumi.Input['JobSourceArgs']] = None):
        """
        Input properties used for looking up and filtering Job resources.
        :param pulumi.Input[str] advanced_settings_json: Advanced settings.
        :param pulumi.Input[bool] auto_deploy: Specify if the job will be automatically updated after receiving a new image tag.
        :param pulumi.Input[bool] auto_preview: Specify if the environment preview option is activated or not for this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobBuiltInEnvironmentVariableArgs']]] built_in_environment_variables: List of built-in environment variables linked to this job.
        :param pulumi.Input[int] cpu: CPU of the job in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        :param pulumi.Input[Sequence[pulumi.Input['JobDeploymentRestrictionArgs']]] deployment_restrictions: List of deployment restrictions
        :param pulumi.Input[str] deployment_stage_id: Id of the deployment stage.
        :param pulumi.Input[str] environment_id: Id of the environment.
        :param pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableAliasArgs']]] environment_variable_aliases: List of environment variable aliases linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableOverrideArgs']]] environment_variable_overrides: List of environment variable overrides linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableArgs']]] environment_variables: List of environment variables linked to this job.
        :param pulumi.Input[str] external_host: The job external FQDN host [NOTE: only if your job is using a publicly accessible port].
        :param pulumi.Input['JobHealthchecksArgs'] healthchecks: Configuration for the healthchecks that are going to be executed against your service
        :param pulumi.Input[str] internal_host: The job internal host.
        :param pulumi.Input[int] max_duration_seconds: Job's max duration in seconds. - Must be: `>= 0`. - Default: `300`.
        :param pulumi.Input[int] max_nb_restart: Job's max number of restarts. - Must be: `>= 0`. - Default: `0`.
        :param pulumi.Input[int] memory: RAM of the job in MB [1024MB = 1GB]. - Must be: `>= 1`. - Default: `512`.
        :param pulumi.Input[str] name: Name of the job.
        :param pulumi.Input[int] port: Job's probes port. - Must be: `>= 1` and `<= 65535`.
        :param pulumi.Input['JobScheduleArgs'] schedule: Job's schedule.
        :param pulumi.Input[Sequence[pulumi.Input['JobSecretAliasArgs']]] secret_aliases: List of secret aliases linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobSecretOverrideArgs']]] secret_overrides: List of secret overrides linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input['JobSecretArgs']]] secrets: List of secrets linked to this job.
        :param pulumi.Input['JobSourceArgs'] source: Job's source.
        """
        if advanced_settings_json is not None:
            pulumi.set(__self__, "advanced_settings_json", advanced_settings_json)
        if auto_deploy is not None:
            pulumi.set(__self__, "auto_deploy", auto_deploy)
        if auto_preview is not None:
            pulumi.set(__self__, "auto_preview", auto_preview)
        if built_in_environment_variables is not None:
            pulumi.set(__self__, "built_in_environment_variables", built_in_environment_variables)
        if cpu is not None:
            pulumi.set(__self__, "cpu", cpu)
        if deployment_restrictions is not None:
            pulumi.set(__self__, "deployment_restrictions", deployment_restrictions)
        if deployment_stage_id is not None:
            pulumi.set(__self__, "deployment_stage_id", deployment_stage_id)
        if environment_id is not None:
            pulumi.set(__self__, "environment_id", environment_id)
        if environment_variable_aliases is not None:
            pulumi.set(__self__, "environment_variable_aliases", environment_variable_aliases)
        if environment_variable_overrides is not None:
            pulumi.set(__self__, "environment_variable_overrides", environment_variable_overrides)
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)
        if external_host is not None:
            pulumi.set(__self__, "external_host", external_host)
        if healthchecks is not None:
            pulumi.set(__self__, "healthchecks", healthchecks)
        if internal_host is not None:
            pulumi.set(__self__, "internal_host", internal_host)
        if max_duration_seconds is not None:
            pulumi.set(__self__, "max_duration_seconds", max_duration_seconds)
        if max_nb_restart is not None:
            pulumi.set(__self__, "max_nb_restart", max_nb_restart)
        if memory is not None:
            pulumi.set(__self__, "memory", memory)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if schedule is not None:
            pulumi.set(__self__, "schedule", schedule)
        if secret_aliases is not None:
            pulumi.set(__self__, "secret_aliases", secret_aliases)
        if secret_overrides is not None:
            pulumi.set(__self__, "secret_overrides", secret_overrides)
        if secrets is not None:
            pulumi.set(__self__, "secrets", secrets)
        if source is not None:
            pulumi.set(__self__, "source", source)

    @property
    @pulumi.getter(name="advancedSettingsJson")
    def advanced_settings_json(self) -> Optional[pulumi.Input[str]]:
        """
        Advanced settings.
        """
        return pulumi.get(self, "advanced_settings_json")

    @advanced_settings_json.setter
    def advanced_settings_json(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "advanced_settings_json", value)

    @property
    @pulumi.getter(name="autoDeploy")
    def auto_deploy(self) -> Optional[pulumi.Input[bool]]:
        """
        Specify if the job will be automatically updated after receiving a new image tag.
        """
        return pulumi.get(self, "auto_deploy")

    @auto_deploy.setter
    def auto_deploy(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "auto_deploy", value)

    @property
    @pulumi.getter(name="autoPreview")
    def auto_preview(self) -> Optional[pulumi.Input[bool]]:
        """
        Specify if the environment preview option is activated or not for this job.
        """
        return pulumi.get(self, "auto_preview")

    @auto_preview.setter
    def auto_preview(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "auto_preview", value)

    @property
    @pulumi.getter(name="builtInEnvironmentVariables")
    def built_in_environment_variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobBuiltInEnvironmentVariableArgs']]]]:
        """
        List of built-in environment variables linked to this job.
        """
        return pulumi.get(self, "built_in_environment_variables")

    @built_in_environment_variables.setter
    def built_in_environment_variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobBuiltInEnvironmentVariableArgs']]]]):
        pulumi.set(self, "built_in_environment_variables", value)

    @property
    @pulumi.getter
    def cpu(self) -> Optional[pulumi.Input[int]]:
        """
        CPU of the job in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        """
        return pulumi.get(self, "cpu")

    @cpu.setter
    def cpu(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "cpu", value)

    @property
    @pulumi.getter(name="deploymentRestrictions")
    def deployment_restrictions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobDeploymentRestrictionArgs']]]]:
        """
        List of deployment restrictions
        """
        return pulumi.get(self, "deployment_restrictions")

    @deployment_restrictions.setter
    def deployment_restrictions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobDeploymentRestrictionArgs']]]]):
        pulumi.set(self, "deployment_restrictions", value)

    @property
    @pulumi.getter(name="deploymentStageId")
    def deployment_stage_id(self) -> Optional[pulumi.Input[str]]:
        """
        Id of the deployment stage.
        """
        return pulumi.get(self, "deployment_stage_id")

    @deployment_stage_id.setter
    def deployment_stage_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "deployment_stage_id", value)

    @property
    @pulumi.getter(name="environmentId")
    def environment_id(self) -> Optional[pulumi.Input[str]]:
        """
        Id of the environment.
        """
        return pulumi.get(self, "environment_id")

    @environment_id.setter
    def environment_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "environment_id", value)

    @property
    @pulumi.getter(name="environmentVariableAliases")
    def environment_variable_aliases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableAliasArgs']]]]:
        """
        List of environment variable aliases linked to this job.
        """
        return pulumi.get(self, "environment_variable_aliases")

    @environment_variable_aliases.setter
    def environment_variable_aliases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableAliasArgs']]]]):
        pulumi.set(self, "environment_variable_aliases", value)

    @property
    @pulumi.getter(name="environmentVariableOverrides")
    def environment_variable_overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableOverrideArgs']]]]:
        """
        List of environment variable overrides linked to this job.
        """
        return pulumi.get(self, "environment_variable_overrides")

    @environment_variable_overrides.setter
    def environment_variable_overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableOverrideArgs']]]]):
        pulumi.set(self, "environment_variable_overrides", value)

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableArgs']]]]:
        """
        List of environment variables linked to this job.
        """
        return pulumi.get(self, "environment_variables")

    @environment_variables.setter
    def environment_variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobEnvironmentVariableArgs']]]]):
        pulumi.set(self, "environment_variables", value)

    @property
    @pulumi.getter(name="externalHost")
    def external_host(self) -> Optional[pulumi.Input[str]]:
        """
        The job external FQDN host [NOTE: only if your job is using a publicly accessible port].
        """
        return pulumi.get(self, "external_host")

    @external_host.setter
    def external_host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "external_host", value)

    @property
    @pulumi.getter
    def healthchecks(self) -> Optional[pulumi.Input['JobHealthchecksArgs']]:
        """
        Configuration for the healthchecks that are going to be executed against your service
        """
        return pulumi.get(self, "healthchecks")

    @healthchecks.setter
    def healthchecks(self, value: Optional[pulumi.Input['JobHealthchecksArgs']]):
        pulumi.set(self, "healthchecks", value)

    @property
    @pulumi.getter(name="internalHost")
    def internal_host(self) -> Optional[pulumi.Input[str]]:
        """
        The job internal host.
        """
        return pulumi.get(self, "internal_host")

    @internal_host.setter
    def internal_host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "internal_host", value)

    @property
    @pulumi.getter(name="maxDurationSeconds")
    def max_duration_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        Job's max duration in seconds. - Must be: `>= 0`. - Default: `300`.
        """
        return pulumi.get(self, "max_duration_seconds")

    @max_duration_seconds.setter
    def max_duration_seconds(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_duration_seconds", value)

    @property
    @pulumi.getter(name="maxNbRestart")
    def max_nb_restart(self) -> Optional[pulumi.Input[int]]:
        """
        Job's max number of restarts. - Must be: `>= 0`. - Default: `0`.
        """
        return pulumi.get(self, "max_nb_restart")

    @max_nb_restart.setter
    def max_nb_restart(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_nb_restart", value)

    @property
    @pulumi.getter
    def memory(self) -> Optional[pulumi.Input[int]]:
        """
        RAM of the job in MB [1024MB = 1GB]. - Must be: `>= 1`. - Default: `512`.
        """
        return pulumi.get(self, "memory")

    @memory.setter
    def memory(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "memory", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        Name of the job.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[int]]:
        """
        Job's probes port. - Must be: `>= 1` and `<= 65535`.
        """
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "port", value)

    @property
    @pulumi.getter
    def schedule(self) -> Optional[pulumi.Input['JobScheduleArgs']]:
        """
        Job's schedule.
        """
        return pulumi.get(self, "schedule")

    @schedule.setter
    def schedule(self, value: Optional[pulumi.Input['JobScheduleArgs']]):
        pulumi.set(self, "schedule", value)

    @property
    @pulumi.getter(name="secretAliases")
    def secret_aliases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretAliasArgs']]]]:
        """
        List of secret aliases linked to this job.
        """
        return pulumi.get(self, "secret_aliases")

    @secret_aliases.setter
    def secret_aliases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretAliasArgs']]]]):
        pulumi.set(self, "secret_aliases", value)

    @property
    @pulumi.getter(name="secretOverrides")
    def secret_overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretOverrideArgs']]]]:
        """
        List of secret overrides linked to this job.
        """
        return pulumi.get(self, "secret_overrides")

    @secret_overrides.setter
    def secret_overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretOverrideArgs']]]]):
        pulumi.set(self, "secret_overrides", value)

    @property
    @pulumi.getter
    def secrets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretArgs']]]]:
        """
        List of secrets linked to this job.
        """
        return pulumi.get(self, "secrets")

    @secrets.setter
    def secrets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobSecretArgs']]]]):
        pulumi.set(self, "secrets", value)

    @property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input['JobSourceArgs']]:
        """
        Job's source.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input['JobSourceArgs']]):
        pulumi.set(self, "source", value)


class Job(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 advanced_settings_json: Optional[pulumi.Input[str]] = None,
                 auto_deploy: Optional[pulumi.Input[bool]] = None,
                 auto_preview: Optional[pulumi.Input[bool]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 deployment_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobDeploymentRestrictionArgs']]]]] = None,
                 deployment_stage_id: Optional[pulumi.Input[str]] = None,
                 environment_id: Optional[pulumi.Input[str]] = None,
                 environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableAliasArgs']]]]] = None,
                 environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableOverrideArgs']]]]] = None,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableArgs']]]]] = None,
                 healthchecks: Optional[pulumi.Input[pulumi.InputType['JobHealthchecksArgs']]] = None,
                 max_duration_seconds: Optional[pulumi.Input[int]] = None,
                 max_nb_restart: Optional[pulumi.Input[int]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 port: Optional[pulumi.Input[int]] = None,
                 schedule: Optional[pulumi.Input[pulumi.InputType['JobScheduleArgs']]] = None,
                 secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretAliasArgs']]]]] = None,
                 secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretOverrideArgs']]]]] = None,
                 secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretArgs']]]]] = None,
                 source: Optional[pulumi.Input[pulumi.InputType['JobSourceArgs']]] = None,
                 __props__=None):
        """
        ## # Job (Resource)

        Provides a Qovery job resource. This can be used to create and manage Qovery job registry.

        ## Import

        ```sh
         $ pulumi import qovery:index/job:Job my_job "<job_id>"
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[str] advanced_settings_json: Advanced settings.
        :param pulumi.Input[bool] auto_deploy: Specify if the job will be automatically updated after receiving a new image tag.
        :param pulumi.Input[bool] auto_preview: Specify if the environment preview option is activated or not for this job.
        :param pulumi.Input[int] cpu: CPU of the job in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobDeploymentRestrictionArgs']]]] deployment_restrictions: List of deployment restrictions
        :param pulumi.Input[str] deployment_stage_id: Id of the deployment stage.
        :param pulumi.Input[str] environment_id: Id of the environment.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableAliasArgs']]]] environment_variable_aliases: List of environment variable aliases linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableOverrideArgs']]]] environment_variable_overrides: List of environment variable overrides linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableArgs']]]] environment_variables: List of environment variables linked to this job.
        :param pulumi.Input[pulumi.InputType['JobHealthchecksArgs']] healthchecks: Configuration for the healthchecks that are going to be executed against your service
        :param pulumi.Input[int] max_duration_seconds: Job's max duration in seconds. - Must be: `>= 0`. - Default: `300`.
        :param pulumi.Input[int] max_nb_restart: Job's max number of restarts. - Must be: `>= 0`. - Default: `0`.
        :param pulumi.Input[int] memory: RAM of the job in MB [1024MB = 1GB]. - Must be: `>= 1`. - Default: `512`.
        :param pulumi.Input[str] name: Name of the job.
        :param pulumi.Input[int] port: Job's probes port. - Must be: `>= 1` and `<= 65535`.
        :param pulumi.Input[pulumi.InputType['JobScheduleArgs']] schedule: Job's schedule.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretAliasArgs']]]] secret_aliases: List of secret aliases linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretOverrideArgs']]]] secret_overrides: List of secret overrides linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretArgs']]]] secrets: List of secrets linked to this job.
        :param pulumi.Input[pulumi.InputType['JobSourceArgs']] source: Job's source.
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: JobArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        ## # Job (Resource)

        Provides a Qovery job resource. This can be used to create and manage Qovery job registry.

        ## Import

        ```sh
         $ pulumi import qovery:index/job:Job my_job "<job_id>"
        ```

        :param str resource_name: The name of the resource.
        :param JobArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(JobArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 advanced_settings_json: Optional[pulumi.Input[str]] = None,
                 auto_deploy: Optional[pulumi.Input[bool]] = None,
                 auto_preview: Optional[pulumi.Input[bool]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 deployment_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobDeploymentRestrictionArgs']]]]] = None,
                 deployment_stage_id: Optional[pulumi.Input[str]] = None,
                 environment_id: Optional[pulumi.Input[str]] = None,
                 environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableAliasArgs']]]]] = None,
                 environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableOverrideArgs']]]]] = None,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableArgs']]]]] = None,
                 healthchecks: Optional[pulumi.Input[pulumi.InputType['JobHealthchecksArgs']]] = None,
                 max_duration_seconds: Optional[pulumi.Input[int]] = None,
                 max_nb_restart: Optional[pulumi.Input[int]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 port: Optional[pulumi.Input[int]] = None,
                 schedule: Optional[pulumi.Input[pulumi.InputType['JobScheduleArgs']]] = None,
                 secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretAliasArgs']]]]] = None,
                 secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretOverrideArgs']]]]] = None,
                 secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretArgs']]]]] = None,
                 source: Optional[pulumi.Input[pulumi.InputType['JobSourceArgs']]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = JobArgs.__new__(JobArgs)

            __props__.__dict__["advanced_settings_json"] = advanced_settings_json
            __props__.__dict__["auto_deploy"] = auto_deploy
            __props__.__dict__["auto_preview"] = auto_preview
            __props__.__dict__["cpu"] = cpu
            __props__.__dict__["deployment_restrictions"] = deployment_restrictions
            __props__.__dict__["deployment_stage_id"] = deployment_stage_id
            if environment_id is None and not opts.urn:
                raise TypeError("Missing required property 'environment_id'")
            __props__.__dict__["environment_id"] = environment_id
            __props__.__dict__["environment_variable_aliases"] = environment_variable_aliases
            __props__.__dict__["environment_variable_overrides"] = environment_variable_overrides
            __props__.__dict__["environment_variables"] = environment_variables
            if healthchecks is None and not opts.urn:
                raise TypeError("Missing required property 'healthchecks'")
            __props__.__dict__["healthchecks"] = healthchecks
            __props__.__dict__["max_duration_seconds"] = max_duration_seconds
            __props__.__dict__["max_nb_restart"] = max_nb_restart
            __props__.__dict__["memory"] = memory
            __props__.__dict__["name"] = name
            __props__.__dict__["port"] = port
            if schedule is None and not opts.urn:
                raise TypeError("Missing required property 'schedule'")
            __props__.__dict__["schedule"] = schedule
            __props__.__dict__["secret_aliases"] = secret_aliases
            __props__.__dict__["secret_overrides"] = secret_overrides
            __props__.__dict__["secrets"] = secrets
            __props__.__dict__["source"] = source
            __props__.__dict__["built_in_environment_variables"] = None
            __props__.__dict__["external_host"] = None
            __props__.__dict__["internal_host"] = None
        super(Job, __self__).__init__(
            'qovery:index/job:Job',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            advanced_settings_json: Optional[pulumi.Input[str]] = None,
            auto_deploy: Optional[pulumi.Input[bool]] = None,
            auto_preview: Optional[pulumi.Input[bool]] = None,
            built_in_environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobBuiltInEnvironmentVariableArgs']]]]] = None,
            cpu: Optional[pulumi.Input[int]] = None,
            deployment_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobDeploymentRestrictionArgs']]]]] = None,
            deployment_stage_id: Optional[pulumi.Input[str]] = None,
            environment_id: Optional[pulumi.Input[str]] = None,
            environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableAliasArgs']]]]] = None,
            environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableOverrideArgs']]]]] = None,
            environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableArgs']]]]] = None,
            external_host: Optional[pulumi.Input[str]] = None,
            healthchecks: Optional[pulumi.Input[pulumi.InputType['JobHealthchecksArgs']]] = None,
            internal_host: Optional[pulumi.Input[str]] = None,
            max_duration_seconds: Optional[pulumi.Input[int]] = None,
            max_nb_restart: Optional[pulumi.Input[int]] = None,
            memory: Optional[pulumi.Input[int]] = None,
            name: Optional[pulumi.Input[str]] = None,
            port: Optional[pulumi.Input[int]] = None,
            schedule: Optional[pulumi.Input[pulumi.InputType['JobScheduleArgs']]] = None,
            secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretAliasArgs']]]]] = None,
            secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretOverrideArgs']]]]] = None,
            secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretArgs']]]]] = None,
            source: Optional[pulumi.Input[pulumi.InputType['JobSourceArgs']]] = None) -> 'Job':
        """
        Get an existing Job resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[str] advanced_settings_json: Advanced settings.
        :param pulumi.Input[bool] auto_deploy: Specify if the job will be automatically updated after receiving a new image tag.
        :param pulumi.Input[bool] auto_preview: Specify if the environment preview option is activated or not for this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobBuiltInEnvironmentVariableArgs']]]] built_in_environment_variables: List of built-in environment variables linked to this job.
        :param pulumi.Input[int] cpu: CPU of the job in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobDeploymentRestrictionArgs']]]] deployment_restrictions: List of deployment restrictions
        :param pulumi.Input[str] deployment_stage_id: Id of the deployment stage.
        :param pulumi.Input[str] environment_id: Id of the environment.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableAliasArgs']]]] environment_variable_aliases: List of environment variable aliases linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableOverrideArgs']]]] environment_variable_overrides: List of environment variable overrides linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobEnvironmentVariableArgs']]]] environment_variables: List of environment variables linked to this job.
        :param pulumi.Input[str] external_host: The job external FQDN host [NOTE: only if your job is using a publicly accessible port].
        :param pulumi.Input[pulumi.InputType['JobHealthchecksArgs']] healthchecks: Configuration for the healthchecks that are going to be executed against your service
        :param pulumi.Input[str] internal_host: The job internal host.
        :param pulumi.Input[int] max_duration_seconds: Job's max duration in seconds. - Must be: `>= 0`. - Default: `300`.
        :param pulumi.Input[int] max_nb_restart: Job's max number of restarts. - Must be: `>= 0`. - Default: `0`.
        :param pulumi.Input[int] memory: RAM of the job in MB [1024MB = 1GB]. - Must be: `>= 1`. - Default: `512`.
        :param pulumi.Input[str] name: Name of the job.
        :param pulumi.Input[int] port: Job's probes port. - Must be: `>= 1` and `<= 65535`.
        :param pulumi.Input[pulumi.InputType['JobScheduleArgs']] schedule: Job's schedule.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretAliasArgs']]]] secret_aliases: List of secret aliases linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretOverrideArgs']]]] secret_overrides: List of secret overrides linked to this job.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['JobSecretArgs']]]] secrets: List of secrets linked to this job.
        :param pulumi.Input[pulumi.InputType['JobSourceArgs']] source: Job's source.
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _JobState.__new__(_JobState)

        __props__.__dict__["advanced_settings_json"] = advanced_settings_json
        __props__.__dict__["auto_deploy"] = auto_deploy
        __props__.__dict__["auto_preview"] = auto_preview
        __props__.__dict__["built_in_environment_variables"] = built_in_environment_variables
        __props__.__dict__["cpu"] = cpu
        __props__.__dict__["deployment_restrictions"] = deployment_restrictions
        __props__.__dict__["deployment_stage_id"] = deployment_stage_id
        __props__.__dict__["environment_id"] = environment_id
        __props__.__dict__["environment_variable_aliases"] = environment_variable_aliases
        __props__.__dict__["environment_variable_overrides"] = environment_variable_overrides
        __props__.__dict__["environment_variables"] = environment_variables
        __props__.__dict__["external_host"] = external_host
        __props__.__dict__["healthchecks"] = healthchecks
        __props__.__dict__["internal_host"] = internal_host
        __props__.__dict__["max_duration_seconds"] = max_duration_seconds
        __props__.__dict__["max_nb_restart"] = max_nb_restart
        __props__.__dict__["memory"] = memory
        __props__.__dict__["name"] = name
        __props__.__dict__["port"] = port
        __props__.__dict__["schedule"] = schedule
        __props__.__dict__["secret_aliases"] = secret_aliases
        __props__.__dict__["secret_overrides"] = secret_overrides
        __props__.__dict__["secrets"] = secrets
        __props__.__dict__["source"] = source
        return Job(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="advancedSettingsJson")
    def advanced_settings_json(self) -> pulumi.Output[str]:
        """
        Advanced settings.
        """
        return pulumi.get(self, "advanced_settings_json")

    @property
    @pulumi.getter(name="autoDeploy")
    def auto_deploy(self) -> pulumi.Output[bool]:
        """
        Specify if the job will be automatically updated after receiving a new image tag.
        """
        return pulumi.get(self, "auto_deploy")

    @property
    @pulumi.getter(name="autoPreview")
    def auto_preview(self) -> pulumi.Output[bool]:
        """
        Specify if the environment preview option is activated or not for this job.
        """
        return pulumi.get(self, "auto_preview")

    @property
    @pulumi.getter(name="builtInEnvironmentVariables")
    def built_in_environment_variables(self) -> pulumi.Output[Sequence['outputs.JobBuiltInEnvironmentVariable']]:
        """
        List of built-in environment variables linked to this job.
        """
        return pulumi.get(self, "built_in_environment_variables")

    @property
    @pulumi.getter
    def cpu(self) -> pulumi.Output[int]:
        """
        CPU of the job in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        """
        return pulumi.get(self, "cpu")

    @property
    @pulumi.getter(name="deploymentRestrictions")
    def deployment_restrictions(self) -> pulumi.Output[Optional[Sequence['outputs.JobDeploymentRestriction']]]:
        """
        List of deployment restrictions
        """
        return pulumi.get(self, "deployment_restrictions")

    @property
    @pulumi.getter(name="deploymentStageId")
    def deployment_stage_id(self) -> pulumi.Output[str]:
        """
        Id of the deployment stage.
        """
        return pulumi.get(self, "deployment_stage_id")

    @property
    @pulumi.getter(name="environmentId")
    def environment_id(self) -> pulumi.Output[str]:
        """
        Id of the environment.
        """
        return pulumi.get(self, "environment_id")

    @property
    @pulumi.getter(name="environmentVariableAliases")
    def environment_variable_aliases(self) -> pulumi.Output[Optional[Sequence['outputs.JobEnvironmentVariableAlias']]]:
        """
        List of environment variable aliases linked to this job.
        """
        return pulumi.get(self, "environment_variable_aliases")

    @property
    @pulumi.getter(name="environmentVariableOverrides")
    def environment_variable_overrides(self) -> pulumi.Output[Optional[Sequence['outputs.JobEnvironmentVariableOverride']]]:
        """
        List of environment variable overrides linked to this job.
        """
        return pulumi.get(self, "environment_variable_overrides")

    @property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> pulumi.Output[Optional[Sequence['outputs.JobEnvironmentVariable']]]:
        """
        List of environment variables linked to this job.
        """
        return pulumi.get(self, "environment_variables")

    @property
    @pulumi.getter(name="externalHost")
    def external_host(self) -> pulumi.Output[str]:
        """
        The job external FQDN host [NOTE: only if your job is using a publicly accessible port].
        """
        return pulumi.get(self, "external_host")

    @property
    @pulumi.getter
    def healthchecks(self) -> pulumi.Output['outputs.JobHealthchecks']:
        """
        Configuration for the healthchecks that are going to be executed against your service
        """
        return pulumi.get(self, "healthchecks")

    @property
    @pulumi.getter(name="internalHost")
    def internal_host(self) -> pulumi.Output[str]:
        """
        The job internal host.
        """
        return pulumi.get(self, "internal_host")

    @property
    @pulumi.getter(name="maxDurationSeconds")
    def max_duration_seconds(self) -> pulumi.Output[int]:
        """
        Job's max duration in seconds. - Must be: `>= 0`. - Default: `300`.
        """
        return pulumi.get(self, "max_duration_seconds")

    @property
    @pulumi.getter(name="maxNbRestart")
    def max_nb_restart(self) -> pulumi.Output[int]:
        """
        Job's max number of restarts. - Must be: `>= 0`. - Default: `0`.
        """
        return pulumi.get(self, "max_nb_restart")

    @property
    @pulumi.getter
    def memory(self) -> pulumi.Output[int]:
        """
        RAM of the job in MB [1024MB = 1GB]. - Must be: `>= 1`. - Default: `512`.
        """
        return pulumi.get(self, "memory")

    @property
    @pulumi.getter
    def name(self) -> pulumi.Output[str]:
        """
        Name of the job.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def port(self) -> pulumi.Output[Optional[int]]:
        """
        Job's probes port. - Must be: `>= 1` and `<= 65535`.
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter
    def schedule(self) -> pulumi.Output['outputs.JobSchedule']:
        """
        Job's schedule.
        """
        return pulumi.get(self, "schedule")

    @property
    @pulumi.getter(name="secretAliases")
    def secret_aliases(self) -> pulumi.Output[Optional[Sequence['outputs.JobSecretAlias']]]:
        """
        List of secret aliases linked to this job.
        """
        return pulumi.get(self, "secret_aliases")

    @property
    @pulumi.getter(name="secretOverrides")
    def secret_overrides(self) -> pulumi.Output[Optional[Sequence['outputs.JobSecretOverride']]]:
        """
        List of secret overrides linked to this job.
        """
        return pulumi.get(self, "secret_overrides")

    @property
    @pulumi.getter
    def secrets(self) -> pulumi.Output[Optional[Sequence['outputs.JobSecret']]]:
        """
        List of secrets linked to this job.
        """
        return pulumi.get(self, "secrets")

    @property
    @pulumi.getter
    def source(self) -> pulumi.Output[Optional['outputs.JobSource']]:
        """
        Job's source.
        """
        return pulumi.get(self, "source")

