# 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__ = ['ContainerArgs', 'Container']

@pulumi.input_type
class ContainerArgs:
    def __init__(__self__, *,
                 environment_id: pulumi.Input[str],
                 healthchecks: pulumi.Input['ContainerHealthchecksArgs'],
                 image_name: pulumi.Input[str],
                 registry_id: pulumi.Input[str],
                 tag: pulumi.Input[str],
                 advanced_settings_json: Optional[pulumi.Input[str]] = None,
                 arguments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 auto_deploy: Optional[pulumi.Input[bool]] = None,
                 auto_preview: Optional[pulumi.Input[bool]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 custom_domains: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerCustomDomainArgs']]]] = None,
                 deployment_stage_id: Optional[pulumi.Input[str]] = None,
                 entrypoint: Optional[pulumi.Input[str]] = None,
                 environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableAliasArgs']]]] = None,
                 environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableOverrideArgs']]]] = None,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableArgs']]]] = None,
                 max_running_instances: Optional[pulumi.Input[int]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 min_running_instances: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 ports: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]]] = None,
                 secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerSecretAliasArgs']]]] = None,
                 secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerSecretOverrideArgs']]]] = None,
                 secrets: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerSecretArgs']]]] = None,
                 storages: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerStorageArgs']]]] = None):
        """
        The set of arguments for constructing a Container resource.
        :param pulumi.Input[str] environment_id: Id of the environment.
        :param pulumi.Input['ContainerHealthchecksArgs'] healthchecks: Configuration for the healthchecks that are going to be executed against your service
        :param pulumi.Input[str] image_name: Name of the container image.
        :param pulumi.Input[str] registry_id: Id of the registry.
        :param pulumi.Input[str] tag: Tag of the container image.
        :param pulumi.Input[str] advanced_settings_json: Advanced settings.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] arguments: List of arguments of this container.
        :param pulumi.Input[bool] auto_deploy: Specify if the container 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 container.
        :param pulumi.Input[int] cpu: CPU of the container in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerCustomDomainArgs']]] custom_domains: List of custom domains linked to this container.
        :param pulumi.Input[str] deployment_stage_id: Id of the deployment stage.
        :param pulumi.Input[str] entrypoint: Entrypoint of the container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableAliasArgs']]] environment_variable_aliases: List of environment variable aliases linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableOverrideArgs']]] environment_variable_overrides: List of environment variable overrides linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableArgs']]] environment_variables: List of environment variables linked to this container.
        :param pulumi.Input[int] max_running_instances: Maximum number of instances running for the container. - Must be: `>= -1`. - Default: `1`.
        :param pulumi.Input[int] memory: RAM of the container in MB [1024MB = 1GB]. - Must be: `>= 10`. - Default: `512`.
        :param pulumi.Input[int] min_running_instances: Minimum number of instances running for the container. - Must be: `>= 1`. - Default: `1`.
        :param pulumi.Input[str] name: Name of the container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]] ports: List of ports linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerSecretAliasArgs']]] secret_aliases: List of secret aliases linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerSecretOverrideArgs']]] secret_overrides: List of secret overrides linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerSecretArgs']]] secrets: List of secrets linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerStorageArgs']]] storages: List of storages linked to this container.
        """
        pulumi.set(__self__, "environment_id", environment_id)
        pulumi.set(__self__, "healthchecks", healthchecks)
        pulumi.set(__self__, "image_name", image_name)
        pulumi.set(__self__, "registry_id", registry_id)
        pulumi.set(__self__, "tag", tag)
        if advanced_settings_json is not None:
            pulumi.set(__self__, "advanced_settings_json", advanced_settings_json)
        if arguments is not None:
            pulumi.set(__self__, "arguments", arguments)
        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 custom_domains is not None:
            pulumi.set(__self__, "custom_domains", custom_domains)
        if deployment_stage_id is not None:
            pulumi.set(__self__, "deployment_stage_id", deployment_stage_id)
        if entrypoint is not None:
            pulumi.set(__self__, "entrypoint", entrypoint)
        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_running_instances is not None:
            pulumi.set(__self__, "max_running_instances", max_running_instances)
        if memory is not None:
            pulumi.set(__self__, "memory", memory)
        if min_running_instances is not None:
            pulumi.set(__self__, "min_running_instances", min_running_instances)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if ports is not None:
            pulumi.set(__self__, "ports", ports)
        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 storages is not None:
            pulumi.set(__self__, "storages", storages)

    @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['ContainerHealthchecksArgs']:
        """
        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['ContainerHealthchecksArgs']):
        pulumi.set(self, "healthchecks", value)

    @property
    @pulumi.getter(name="imageName")
    def image_name(self) -> pulumi.Input[str]:
        """
        Name of the container image.
        """
        return pulumi.get(self, "image_name")

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

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

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

    @property
    @pulumi.getter
    def tag(self) -> pulumi.Input[str]:
        """
        Tag of the container image.
        """
        return pulumi.get(self, "tag")

    @tag.setter
    def tag(self, value: pulumi.Input[str]):
        pulumi.set(self, "tag", 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
    def arguments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of arguments of this container.
        """
        return pulumi.get(self, "arguments")

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

    @property
    @pulumi.getter(name="autoDeploy")
    def auto_deploy(self) -> Optional[pulumi.Input[bool]]:
        """
        Specify if the container 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 container.
        """
        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 container 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="customDomains")
    def custom_domains(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerCustomDomainArgs']]]]:
        """
        List of custom domains linked to this container.
        """
        return pulumi.get(self, "custom_domains")

    @custom_domains.setter
    def custom_domains(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerCustomDomainArgs']]]]):
        pulumi.set(self, "custom_domains", 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
    def entrypoint(self) -> Optional[pulumi.Input[str]]:
        """
        Entrypoint of the container.
        """
        return pulumi.get(self, "entrypoint")

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="maxRunningInstances")
    def max_running_instances(self) -> Optional[pulumi.Input[int]]:
        """
        Maximum number of instances running for the container. - Must be: `>= -1`. - Default: `1`.
        """
        return pulumi.get(self, "max_running_instances")

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

    @property
    @pulumi.getter
    def memory(self) -> Optional[pulumi.Input[int]]:
        """
        RAM of the container in MB [1024MB = 1GB]. - Must be: `>= 10`. - 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(name="minRunningInstances")
    def min_running_instances(self) -> Optional[pulumi.Input[int]]:
        """
        Minimum number of instances running for the container. - Must be: `>= 1`. - Default: `1`.
        """
        return pulumi.get(self, "min_running_instances")

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

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class _ContainerState:
    def __init__(__self__, *,
                 advanced_settings_json: Optional[pulumi.Input[str]] = None,
                 arguments: Optional[pulumi.Input[Sequence[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['ContainerBuiltInEnvironmentVariableArgs']]]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 custom_domains: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerCustomDomainArgs']]]] = None,
                 deployment_stage_id: Optional[pulumi.Input[str]] = None,
                 entrypoint: Optional[pulumi.Input[str]] = None,
                 environment_id: Optional[pulumi.Input[str]] = None,
                 environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableAliasArgs']]]] = None,
                 environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableOverrideArgs']]]] = None,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableArgs']]]] = None,
                 external_host: Optional[pulumi.Input[str]] = None,
                 healthchecks: Optional[pulumi.Input['ContainerHealthchecksArgs']] = None,
                 image_name: Optional[pulumi.Input[str]] = None,
                 internal_host: Optional[pulumi.Input[str]] = None,
                 max_running_instances: Optional[pulumi.Input[int]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 min_running_instances: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 ports: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]]] = None,
                 registry_id: Optional[pulumi.Input[str]] = None,
                 secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerSecretAliasArgs']]]] = None,
                 secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerSecretOverrideArgs']]]] = None,
                 secrets: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerSecretArgs']]]] = None,
                 storages: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerStorageArgs']]]] = None,
                 tag: Optional[pulumi.Input[str]] = None):
        """
        Input properties used for looking up and filtering Container resources.
        :param pulumi.Input[str] advanced_settings_json: Advanced settings.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] arguments: List of arguments of this container.
        :param pulumi.Input[bool] auto_deploy: Specify if the container 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 container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerBuiltInEnvironmentVariableArgs']]] built_in_environment_variables: List of built-in environment variables linked to this container.
        :param pulumi.Input[int] cpu: CPU of the container in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerCustomDomainArgs']]] custom_domains: List of custom domains linked to this container.
        :param pulumi.Input[str] deployment_stage_id: Id of the deployment stage.
        :param pulumi.Input[str] entrypoint: Entrypoint of the container.
        :param pulumi.Input[str] environment_id: Id of the environment.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableAliasArgs']]] environment_variable_aliases: List of environment variable aliases linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableOverrideArgs']]] environment_variable_overrides: List of environment variable overrides linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerEnvironmentVariableArgs']]] environment_variables: List of environment variables linked to this container.
        :param pulumi.Input[str] external_host: The container external FQDN host [NOTE: only if your container is using a publicly accessible port].
        :param pulumi.Input['ContainerHealthchecksArgs'] healthchecks: Configuration for the healthchecks that are going to be executed against your service
        :param pulumi.Input[str] image_name: Name of the container image.
        :param pulumi.Input[str] internal_host: The container internal host.
        :param pulumi.Input[int] max_running_instances: Maximum number of instances running for the container. - Must be: `>= -1`. - Default: `1`.
        :param pulumi.Input[int] memory: RAM of the container in MB [1024MB = 1GB]. - Must be: `>= 10`. - Default: `512`.
        :param pulumi.Input[int] min_running_instances: Minimum number of instances running for the container. - Must be: `>= 1`. - Default: `1`.
        :param pulumi.Input[str] name: Name of the container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]] ports: List of ports linked to this container.
        :param pulumi.Input[str] registry_id: Id of the registry.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerSecretAliasArgs']]] secret_aliases: List of secret aliases linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerSecretOverrideArgs']]] secret_overrides: List of secret overrides linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerSecretArgs']]] secrets: List of secrets linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerStorageArgs']]] storages: List of storages linked to this container.
        :param pulumi.Input[str] tag: Tag of the container image.
        """
        if advanced_settings_json is not None:
            pulumi.set(__self__, "advanced_settings_json", advanced_settings_json)
        if arguments is not None:
            pulumi.set(__self__, "arguments", arguments)
        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 custom_domains is not None:
            pulumi.set(__self__, "custom_domains", custom_domains)
        if deployment_stage_id is not None:
            pulumi.set(__self__, "deployment_stage_id", deployment_stage_id)
        if entrypoint is not None:
            pulumi.set(__self__, "entrypoint", entrypoint)
        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 image_name is not None:
            pulumi.set(__self__, "image_name", image_name)
        if internal_host is not None:
            pulumi.set(__self__, "internal_host", internal_host)
        if max_running_instances is not None:
            pulumi.set(__self__, "max_running_instances", max_running_instances)
        if memory is not None:
            pulumi.set(__self__, "memory", memory)
        if min_running_instances is not None:
            pulumi.set(__self__, "min_running_instances", min_running_instances)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if ports is not None:
            pulumi.set(__self__, "ports", ports)
        if registry_id is not None:
            pulumi.set(__self__, "registry_id", registry_id)
        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 storages is not None:
            pulumi.set(__self__, "storages", storages)
        if tag is not None:
            pulumi.set(__self__, "tag", tag)

    @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
    def arguments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        List of arguments of this container.
        """
        return pulumi.get(self, "arguments")

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

    @property
    @pulumi.getter(name="autoDeploy")
    def auto_deploy(self) -> Optional[pulumi.Input[bool]]:
        """
        Specify if the container 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 container.
        """
        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['ContainerBuiltInEnvironmentVariableArgs']]]]:
        """
        List of built-in environment variables linked to this container.
        """
        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['ContainerBuiltInEnvironmentVariableArgs']]]]):
        pulumi.set(self, "built_in_environment_variables", value)

    @property
    @pulumi.getter
    def cpu(self) -> Optional[pulumi.Input[int]]:
        """
        CPU of the container 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="customDomains")
    def custom_domains(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerCustomDomainArgs']]]]:
        """
        List of custom domains linked to this container.
        """
        return pulumi.get(self, "custom_domains")

    @custom_domains.setter
    def custom_domains(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerCustomDomainArgs']]]]):
        pulumi.set(self, "custom_domains", 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
    def entrypoint(self) -> Optional[pulumi.Input[str]]:
        """
        Entrypoint of the container.
        """
        return pulumi.get(self, "entrypoint")

    @entrypoint.setter
    def entrypoint(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "entrypoint", 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['ContainerEnvironmentVariableAliasArgs']]]]:
        """
        List of environment variable aliases linked to this container.
        """
        return pulumi.get(self, "environment_variable_aliases")

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

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

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

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

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

    @property
    @pulumi.getter(name="externalHost")
    def external_host(self) -> Optional[pulumi.Input[str]]:
        """
        The container external FQDN host [NOTE: only if your container 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['ContainerHealthchecksArgs']]:
        """
        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['ContainerHealthchecksArgs']]):
        pulumi.set(self, "healthchecks", value)

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

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

    @property
    @pulumi.getter(name="internalHost")
    def internal_host(self) -> Optional[pulumi.Input[str]]:
        """
        The container 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="maxRunningInstances")
    def max_running_instances(self) -> Optional[pulumi.Input[int]]:
        """
        Maximum number of instances running for the container. - Must be: `>= -1`. - Default: `1`.
        """
        return pulumi.get(self, "max_running_instances")

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

    @property
    @pulumi.getter
    def memory(self) -> Optional[pulumi.Input[int]]:
        """
        RAM of the container in MB [1024MB = 1GB]. - Must be: `>= 10`. - 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(name="minRunningInstances")
    def min_running_instances(self) -> Optional[pulumi.Input[int]]:
        """
        Minimum number of instances running for the container. - Must be: `>= 1`. - Default: `1`.
        """
        return pulumi.get(self, "min_running_instances")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter
    def tag(self) -> Optional[pulumi.Input[str]]:
        """
        Tag of the container image.
        """
        return pulumi.get(self, "tag")

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


class Container(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 advanced_settings_json: Optional[pulumi.Input[str]] = None,
                 arguments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 auto_deploy: Optional[pulumi.Input[bool]] = None,
                 auto_preview: Optional[pulumi.Input[bool]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 custom_domains: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerCustomDomainArgs']]]]] = None,
                 deployment_stage_id: Optional[pulumi.Input[str]] = None,
                 entrypoint: Optional[pulumi.Input[str]] = None,
                 environment_id: Optional[pulumi.Input[str]] = None,
                 environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableAliasArgs']]]]] = None,
                 environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableOverrideArgs']]]]] = None,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableArgs']]]]] = None,
                 healthchecks: Optional[pulumi.Input[pulumi.InputType['ContainerHealthchecksArgs']]] = None,
                 image_name: Optional[pulumi.Input[str]] = None,
                 max_running_instances: Optional[pulumi.Input[int]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 min_running_instances: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]]] = None,
                 registry_id: Optional[pulumi.Input[str]] = None,
                 secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretAliasArgs']]]]] = None,
                 secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretOverrideArgs']]]]] = None,
                 secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretArgs']]]]] = None,
                 storages: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerStorageArgs']]]]] = None,
                 tag: Optional[pulumi.Input[str]] = None,
                 __props__=None):
        """
        ## # Container (Resource)

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

        ## Import

        ```sh
         $ pulumi import qovery:index/container:Container my_container "<container_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[Sequence[pulumi.Input[str]]] arguments: List of arguments of this container.
        :param pulumi.Input[bool] auto_deploy: Specify if the container 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 container.
        :param pulumi.Input[int] cpu: CPU of the container in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerCustomDomainArgs']]]] custom_domains: List of custom domains linked to this container.
        :param pulumi.Input[str] deployment_stage_id: Id of the deployment stage.
        :param pulumi.Input[str] entrypoint: Entrypoint of the container.
        :param pulumi.Input[str] environment_id: Id of the environment.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableAliasArgs']]]] environment_variable_aliases: List of environment variable aliases linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableOverrideArgs']]]] environment_variable_overrides: List of environment variable overrides linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableArgs']]]] environment_variables: List of environment variables linked to this container.
        :param pulumi.Input[pulumi.InputType['ContainerHealthchecksArgs']] healthchecks: Configuration for the healthchecks that are going to be executed against your service
        :param pulumi.Input[str] image_name: Name of the container image.
        :param pulumi.Input[int] max_running_instances: Maximum number of instances running for the container. - Must be: `>= -1`. - Default: `1`.
        :param pulumi.Input[int] memory: RAM of the container in MB [1024MB = 1GB]. - Must be: `>= 10`. - Default: `512`.
        :param pulumi.Input[int] min_running_instances: Minimum number of instances running for the container. - Must be: `>= 1`. - Default: `1`.
        :param pulumi.Input[str] name: Name of the container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]] ports: List of ports linked to this container.
        :param pulumi.Input[str] registry_id: Id of the registry.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretAliasArgs']]]] secret_aliases: List of secret aliases linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretOverrideArgs']]]] secret_overrides: List of secret overrides linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretArgs']]]] secrets: List of secrets linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerStorageArgs']]]] storages: List of storages linked to this container.
        :param pulumi.Input[str] tag: Tag of the container image.
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: ContainerArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        ## # Container (Resource)

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

        ## Import

        ```sh
         $ pulumi import qovery:index/container:Container my_container "<container_id>"
        ```

        :param str resource_name: The name of the resource.
        :param ContainerArgs 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(ContainerArgs, 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,
                 arguments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 auto_deploy: Optional[pulumi.Input[bool]] = None,
                 auto_preview: Optional[pulumi.Input[bool]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 custom_domains: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerCustomDomainArgs']]]]] = None,
                 deployment_stage_id: Optional[pulumi.Input[str]] = None,
                 entrypoint: Optional[pulumi.Input[str]] = None,
                 environment_id: Optional[pulumi.Input[str]] = None,
                 environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableAliasArgs']]]]] = None,
                 environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableOverrideArgs']]]]] = None,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableArgs']]]]] = None,
                 healthchecks: Optional[pulumi.Input[pulumi.InputType['ContainerHealthchecksArgs']]] = None,
                 image_name: Optional[pulumi.Input[str]] = None,
                 max_running_instances: Optional[pulumi.Input[int]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 min_running_instances: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]]] = None,
                 registry_id: Optional[pulumi.Input[str]] = None,
                 secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretAliasArgs']]]]] = None,
                 secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretOverrideArgs']]]]] = None,
                 secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretArgs']]]]] = None,
                 storages: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerStorageArgs']]]]] = None,
                 tag: Optional[pulumi.Input[str]] = 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__ = ContainerArgs.__new__(ContainerArgs)

            __props__.__dict__["advanced_settings_json"] = advanced_settings_json
            __props__.__dict__["arguments"] = arguments
            __props__.__dict__["auto_deploy"] = auto_deploy
            __props__.__dict__["auto_preview"] = auto_preview
            __props__.__dict__["cpu"] = cpu
            __props__.__dict__["custom_domains"] = custom_domains
            __props__.__dict__["deployment_stage_id"] = deployment_stage_id
            __props__.__dict__["entrypoint"] = entrypoint
            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
            if image_name is None and not opts.urn:
                raise TypeError("Missing required property 'image_name'")
            __props__.__dict__["image_name"] = image_name
            __props__.__dict__["max_running_instances"] = max_running_instances
            __props__.__dict__["memory"] = memory
            __props__.__dict__["min_running_instances"] = min_running_instances
            __props__.__dict__["name"] = name
            __props__.__dict__["ports"] = ports
            if registry_id is None and not opts.urn:
                raise TypeError("Missing required property 'registry_id'")
            __props__.__dict__["registry_id"] = registry_id
            __props__.__dict__["secret_aliases"] = secret_aliases
            __props__.__dict__["secret_overrides"] = secret_overrides
            __props__.__dict__["secrets"] = secrets
            __props__.__dict__["storages"] = storages
            if tag is None and not opts.urn:
                raise TypeError("Missing required property 'tag'")
            __props__.__dict__["tag"] = tag
            __props__.__dict__["built_in_environment_variables"] = None
            __props__.__dict__["external_host"] = None
            __props__.__dict__["internal_host"] = None
        super(Container, __self__).__init__(
            'qovery:index/container:Container',
            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,
            arguments: Optional[pulumi.Input[Sequence[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['ContainerBuiltInEnvironmentVariableArgs']]]]] = None,
            cpu: Optional[pulumi.Input[int]] = None,
            custom_domains: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerCustomDomainArgs']]]]] = None,
            deployment_stage_id: Optional[pulumi.Input[str]] = None,
            entrypoint: Optional[pulumi.Input[str]] = None,
            environment_id: Optional[pulumi.Input[str]] = None,
            environment_variable_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableAliasArgs']]]]] = None,
            environment_variable_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableOverrideArgs']]]]] = None,
            environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableArgs']]]]] = None,
            external_host: Optional[pulumi.Input[str]] = None,
            healthchecks: Optional[pulumi.Input[pulumi.InputType['ContainerHealthchecksArgs']]] = None,
            image_name: Optional[pulumi.Input[str]] = None,
            internal_host: Optional[pulumi.Input[str]] = None,
            max_running_instances: Optional[pulumi.Input[int]] = None,
            memory: Optional[pulumi.Input[int]] = None,
            min_running_instances: Optional[pulumi.Input[int]] = None,
            name: Optional[pulumi.Input[str]] = None,
            ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]]] = None,
            registry_id: Optional[pulumi.Input[str]] = None,
            secret_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretAliasArgs']]]]] = None,
            secret_overrides: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretOverrideArgs']]]]] = None,
            secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretArgs']]]]] = None,
            storages: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerStorageArgs']]]]] = None,
            tag: Optional[pulumi.Input[str]] = None) -> 'Container':
        """
        Get an existing Container 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[Sequence[pulumi.Input[str]]] arguments: List of arguments of this container.
        :param pulumi.Input[bool] auto_deploy: Specify if the container 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 container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerBuiltInEnvironmentVariableArgs']]]] built_in_environment_variables: List of built-in environment variables linked to this container.
        :param pulumi.Input[int] cpu: CPU of the container in millicores (m) [1000m = 1 CPU]. - Must be: `>= 10`. - Default: `500`.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerCustomDomainArgs']]]] custom_domains: List of custom domains linked to this container.
        :param pulumi.Input[str] deployment_stage_id: Id of the deployment stage.
        :param pulumi.Input[str] entrypoint: Entrypoint of the container.
        :param pulumi.Input[str] environment_id: Id of the environment.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableAliasArgs']]]] environment_variable_aliases: List of environment variable aliases linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableOverrideArgs']]]] environment_variable_overrides: List of environment variable overrides linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerEnvironmentVariableArgs']]]] environment_variables: List of environment variables linked to this container.
        :param pulumi.Input[str] external_host: The container external FQDN host [NOTE: only if your container is using a publicly accessible port].
        :param pulumi.Input[pulumi.InputType['ContainerHealthchecksArgs']] healthchecks: Configuration for the healthchecks that are going to be executed against your service
        :param pulumi.Input[str] image_name: Name of the container image.
        :param pulumi.Input[str] internal_host: The container internal host.
        :param pulumi.Input[int] max_running_instances: Maximum number of instances running for the container. - Must be: `>= -1`. - Default: `1`.
        :param pulumi.Input[int] memory: RAM of the container in MB [1024MB = 1GB]. - Must be: `>= 10`. - Default: `512`.
        :param pulumi.Input[int] min_running_instances: Minimum number of instances running for the container. - Must be: `>= 1`. - Default: `1`.
        :param pulumi.Input[str] name: Name of the container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]] ports: List of ports linked to this container.
        :param pulumi.Input[str] registry_id: Id of the registry.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretAliasArgs']]]] secret_aliases: List of secret aliases linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretOverrideArgs']]]] secret_overrides: List of secret overrides linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerSecretArgs']]]] secrets: List of secrets linked to this container.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerStorageArgs']]]] storages: List of storages linked to this container.
        :param pulumi.Input[str] tag: Tag of the container image.
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _ContainerState.__new__(_ContainerState)

        __props__.__dict__["advanced_settings_json"] = advanced_settings_json
        __props__.__dict__["arguments"] = arguments
        __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__["custom_domains"] = custom_domains
        __props__.__dict__["deployment_stage_id"] = deployment_stage_id
        __props__.__dict__["entrypoint"] = entrypoint
        __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__["image_name"] = image_name
        __props__.__dict__["internal_host"] = internal_host
        __props__.__dict__["max_running_instances"] = max_running_instances
        __props__.__dict__["memory"] = memory
        __props__.__dict__["min_running_instances"] = min_running_instances
        __props__.__dict__["name"] = name
        __props__.__dict__["ports"] = ports
        __props__.__dict__["registry_id"] = registry_id
        __props__.__dict__["secret_aliases"] = secret_aliases
        __props__.__dict__["secret_overrides"] = secret_overrides
        __props__.__dict__["secrets"] = secrets
        __props__.__dict__["storages"] = storages
        __props__.__dict__["tag"] = tag
        return Container(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
    def arguments(self) -> pulumi.Output[Sequence[str]]:
        """
        List of arguments of this container.
        """
        return pulumi.get(self, "arguments")

    @property
    @pulumi.getter(name="autoDeploy")
    def auto_deploy(self) -> pulumi.Output[bool]:
        """
        Specify if the container 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 container.
        """
        return pulumi.get(self, "auto_preview")

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

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

    @property
    @pulumi.getter(name="customDomains")
    def custom_domains(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerCustomDomain']]]:
        """
        List of custom domains linked to this container.
        """
        return pulumi.get(self, "custom_domains")

    @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
    def entrypoint(self) -> pulumi.Output[Optional[str]]:
        """
        Entrypoint of the container.
        """
        return pulumi.get(self, "entrypoint")

    @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.ContainerEnvironmentVariableAlias']]]:
        """
        List of environment variable aliases linked to this container.
        """
        return pulumi.get(self, "environment_variable_aliases")

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

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

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

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

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

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

    @property
    @pulumi.getter(name="maxRunningInstances")
    def max_running_instances(self) -> pulumi.Output[int]:
        """
        Maximum number of instances running for the container. - Must be: `>= -1`. - Default: `1`.
        """
        return pulumi.get(self, "max_running_instances")

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

    @property
    @pulumi.getter(name="minRunningInstances")
    def min_running_instances(self) -> pulumi.Output[int]:
        """
        Minimum number of instances running for the container. - Must be: `>= 1`. - Default: `1`.
        """
        return pulumi.get(self, "min_running_instances")

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

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

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

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

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

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

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

    @property
    @pulumi.getter
    def tag(self) -> pulumi.Output[str]:
        """
        Tag of the container image.
        """
        return pulumi.get(self, "tag")

