# 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

__all__ = ['ApplicationArgs', 'Application']

@pulumi.input_type
class ApplicationArgs:
    def __init__(__self__, *,
                 app_name: pulumi.Input[str],
                 package_type: pulumi.Input[str],
                 replicas: pulumi.Input[int],
                 acr_assume_role_arn: Optional[pulumi.Input[str]] = None,
                 acr_instance_id: Optional[pulumi.Input[str]] = None,
                 app_description: Optional[pulumi.Input[str]] = None,
                 auto_config: Optional[pulumi.Input[bool]] = None,
                 auto_enable_application_scaling_rule: Optional[pulumi.Input[bool]] = None,
                 batch_wait_time: Optional[pulumi.Input[int]] = None,
                 change_order_desc: Optional[pulumi.Input[str]] = None,
                 command: Optional[pulumi.Input[str]] = None,
                 command_args: Optional[pulumi.Input[str]] = None,
                 config_map_mount_desc: Optional[pulumi.Input[str]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 custom_host_alias: Optional[pulumi.Input[str]] = None,
                 deploy: Optional[pulumi.Input[bool]] = None,
                 edas_container_version: Optional[pulumi.Input[str]] = None,
                 enable_ahas: Optional[pulumi.Input[str]] = None,
                 enable_grey_tag_route: Optional[pulumi.Input[bool]] = None,
                 envs: Optional[pulumi.Input[str]] = None,
                 image_url: Optional[pulumi.Input[str]] = None,
                 jar_start_args: Optional[pulumi.Input[str]] = None,
                 jar_start_options: Optional[pulumi.Input[str]] = None,
                 jdk: Optional[pulumi.Input[str]] = None,
                 liveness: Optional[pulumi.Input[str]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 micro_registration: Optional[pulumi.Input[str]] = None,
                 min_ready_instance_ratio: Optional[pulumi.Input[int]] = None,
                 min_ready_instances: Optional[pulumi.Input[int]] = None,
                 mount_desc: Optional[pulumi.Input[str]] = None,
                 mount_host: Optional[pulumi.Input[str]] = None,
                 namespace_id: Optional[pulumi.Input[str]] = None,
                 nas_id: Optional[pulumi.Input[str]] = None,
                 oss_ak_id: Optional[pulumi.Input[str]] = None,
                 oss_ak_secret: Optional[pulumi.Input[str]] = None,
                 oss_mount_descs: Optional[pulumi.Input[str]] = None,
                 package_url: Optional[pulumi.Input[str]] = None,
                 package_version: Optional[pulumi.Input[str]] = None,
                 php_arms_config_location: Optional[pulumi.Input[str]] = None,
                 php_config: Optional[pulumi.Input[str]] = None,
                 php_config_location: Optional[pulumi.Input[str]] = None,
                 post_start: Optional[pulumi.Input[str]] = None,
                 pre_stop: Optional[pulumi.Input[str]] = None,
                 readiness: Optional[pulumi.Input[str]] = None,
                 security_group_id: Optional[pulumi.Input[str]] = None,
                 sls_configs: Optional[pulumi.Input[str]] = None,
                 status: Optional[pulumi.Input[str]] = None,
                 tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 termination_grace_period_seconds: Optional[pulumi.Input[int]] = None,
                 timezone: Optional[pulumi.Input[str]] = None,
                 tomcat_config: Optional[pulumi.Input[str]] = None,
                 update_strategy: Optional[pulumi.Input[str]] = None,
                 version_id: Optional[pulumi.Input[str]] = None,
                 vpc_id: Optional[pulumi.Input[str]] = None,
                 vswitch_id: Optional[pulumi.Input[str]] = None,
                 war_start_options: Optional[pulumi.Input[str]] = None,
                 web_container: Optional[pulumi.Input[str]] = None):
        """
        The set of arguments for constructing a Application resource.
        :param pulumi.Input[str] app_name: Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.
        :param pulumi.Input[str] package_type: Application package type. Support FatJar, War and Image. Valid values: `FatJar`, `Image`, `War`.
        :param pulumi.Input[int] replicas: Initial number of instances.
        :param pulumi.Input[str] acr_assume_role_arn: The ARN of the RAM role required when pulling images across accounts. Only necessary if the image_url is pointing to an ACR EE instance.
        :param pulumi.Input[str] acr_instance_id: The ID of the ACR EE instance. Only necessary if the image_url is pointing to an ACR EE instance.
        :param pulumi.Input[str] app_description: Application description information. No more than 1024 characters.
        :param pulumi.Input[bool] auto_config: The auto config. Valid values: `false`, `true`.
        :param pulumi.Input[bool] auto_enable_application_scaling_rule: The auto enable application scaling rule. Valid values: `false`, `true`.
        :param pulumi.Input[int] batch_wait_time: The batch wait time.
        :param pulumi.Input[str] change_order_desc: The change order desc.
        :param pulumi.Input[str] command: Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.
        :param pulumi.Input[str] command_args: Mirror startup command parameters. The parameters required for the above start command. For example: 1d.
        :param pulumi.Input[str] config_map_mount_desc: ConfigMap mount description.
        :param pulumi.Input[int] cpu: The CPU required for each instance, in millicores, cannot be 0. Valid values: `1000`, `16000`, `2000`, `32000`, `4000`, `500`, `8000`.
        :param pulumi.Input[str] custom_host_alias: Custom host mapping in the container. For example: [{`hostName`:`samplehost`,`ip`:`127.0.0.1`}].
        :param pulumi.Input[bool] deploy: The deploy. Valid values: `false`, `true`.
        :param pulumi.Input[str] edas_container_version: The operating environment used by the Pandora application.
        :param pulumi.Input[str] enable_ahas: The enable ahas.
        :param pulumi.Input[bool] enable_grey_tag_route: The enable grey tag route.
        :param pulumi.Input[str] envs: Container environment variable parameters. For example,`	[{"name":"envtmp","value":"0"}]`. The value description is as follows:
        :param pulumi.Input[str] image_url: Mirror address. Only Image type applications can configure the mirror address.
        :param pulumi.Input[str] jar_start_args: The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        :param pulumi.Input[str] jar_start_options: The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        :param pulumi.Input[str] jdk: The JDK version that the deployment package depends on. Image type applications are not supported.
        :param pulumi.Input[str] liveness: Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.
        :param pulumi.Input[int] memory: The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: `1024`, `131072`, `16384`, `2048`, `32768`, `4096`, `65536`, `8192`.
        :param pulumi.Input[str] micro_registration: Select the Nacos registry. Valid values: `0`, `1`, `2`.
        :param pulumi.Input[int] min_ready_instance_ratio: Minimum Survival Instance Percentage. **NOTE:** When `min_ready_instances` and `min_ready_instance_ratio` are passed at the same time, and the value of `min_ready_instance_ratio` is not -1, the `min_ready_instance_ratio` parameter shall prevail. Assuming that `min_ready_instances` is 5 and `min_ready_instance_ratio` is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows: 
               * `-1`: Initialization value, indicating that percentages are not used.
               * `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.
        :param pulumi.Input[int] min_ready_instances: The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.
        :param pulumi.Input[str] mount_desc: Mount description.
        :param pulumi.Input[str] mount_host: Mount point of NAS in application VPC.
        :param pulumi.Input[str] namespace_id: SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.
        :param pulumi.Input[str] nas_id: ID of the mounted NAS, Must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field is present, a NAS will be automatically purchased and mounted on the switch in the VPC by default.
        :param pulumi.Input[str] oss_ak_id: OSS AccessKey ID.
        :param pulumi.Input[str] oss_ak_secret: OSS  AccessKey Secret.
        :param pulumi.Input[str] oss_mount_descs: OSS mount description information.
        :param pulumi.Input[str] package_url: Deployment package address. Only FatJar or War type applications can configure the deployment package address.
        :param pulumi.Input[str] package_version: The version number of the deployment package. Required when the Package Type is War and FatJar.
        :param pulumi.Input[str] php_arms_config_location: The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.
        :param pulumi.Input[str] php_config: PHP configuration file content.
        :param pulumi.Input[str] php_config_location: PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.
        :param pulumi.Input[str] post_start: Execute the script after startup, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        :param pulumi.Input[str] pre_stop: Execute the script before stopping, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        :param pulumi.Input[str] readiness: Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {`exec`:{`command`:[`sh`,"-c","cat /home/admin/start.sh"]},`initialDelaySeconds`:30,`periodSeconds`:30,"timeoutSeconds ":2}. Valid values: `command`, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.
        :param pulumi.Input[str] security_group_id: Security group ID.
        :param pulumi.Input[str] sls_configs: SLS  configuration.
        :param pulumi.Input[str] status: The status of the resource. Valid values: `RUNNING`, `STOPPED`.
        :param pulumi.Input[Mapping[str, Any]] tags: A mapping of tags to assign to the resource.
        :param pulumi.Input[int] termination_grace_period_seconds: Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].
        :param pulumi.Input[str] timezone: Time zone, the default value is Asia/Shanghai.
        :param pulumi.Input[str] tomcat_config: Tomcat file configuration, set to "{}" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.
        :param pulumi.Input[str] update_strategy: The update strategy.
        :param pulumi.Input[str] version_id: Application version id.
        :param pulumi.Input[str] vpc_id: The vpc id.
        :param pulumi.Input[str] vswitch_id: The vswitch id.
        :param pulumi.Input[str] war_start_options: WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap "$@" start.
        :param pulumi.Input[str] web_container: The version of tomcat that the deployment package depends on. Image type applications are not supported.
        """
        pulumi.set(__self__, "app_name", app_name)
        pulumi.set(__self__, "package_type", package_type)
        pulumi.set(__self__, "replicas", replicas)
        if acr_assume_role_arn is not None:
            pulumi.set(__self__, "acr_assume_role_arn", acr_assume_role_arn)
        if acr_instance_id is not None:
            pulumi.set(__self__, "acr_instance_id", acr_instance_id)
        if app_description is not None:
            pulumi.set(__self__, "app_description", app_description)
        if auto_config is not None:
            pulumi.set(__self__, "auto_config", auto_config)
        if auto_enable_application_scaling_rule is not None:
            pulumi.set(__self__, "auto_enable_application_scaling_rule", auto_enable_application_scaling_rule)
        if batch_wait_time is not None:
            pulumi.set(__self__, "batch_wait_time", batch_wait_time)
        if change_order_desc is not None:
            pulumi.set(__self__, "change_order_desc", change_order_desc)
        if command is not None:
            pulumi.set(__self__, "command", command)
        if command_args is not None:
            pulumi.set(__self__, "command_args", command_args)
        if config_map_mount_desc is not None:
            pulumi.set(__self__, "config_map_mount_desc", config_map_mount_desc)
        if cpu is not None:
            pulumi.set(__self__, "cpu", cpu)
        if custom_host_alias is not None:
            pulumi.set(__self__, "custom_host_alias", custom_host_alias)
        if deploy is not None:
            pulumi.set(__self__, "deploy", deploy)
        if edas_container_version is not None:
            pulumi.set(__self__, "edas_container_version", edas_container_version)
        if enable_ahas is not None:
            pulumi.set(__self__, "enable_ahas", enable_ahas)
        if enable_grey_tag_route is not None:
            pulumi.set(__self__, "enable_grey_tag_route", enable_grey_tag_route)
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if image_url is not None:
            pulumi.set(__self__, "image_url", image_url)
        if jar_start_args is not None:
            pulumi.set(__self__, "jar_start_args", jar_start_args)
        if jar_start_options is not None:
            pulumi.set(__self__, "jar_start_options", jar_start_options)
        if jdk is not None:
            pulumi.set(__self__, "jdk", jdk)
        if liveness is not None:
            pulumi.set(__self__, "liveness", liveness)
        if memory is not None:
            pulumi.set(__self__, "memory", memory)
        if micro_registration is not None:
            pulumi.set(__self__, "micro_registration", micro_registration)
        if min_ready_instance_ratio is not None:
            pulumi.set(__self__, "min_ready_instance_ratio", min_ready_instance_ratio)
        if min_ready_instances is not None:
            pulumi.set(__self__, "min_ready_instances", min_ready_instances)
        if mount_desc is not None:
            pulumi.set(__self__, "mount_desc", mount_desc)
        if mount_host is not None:
            pulumi.set(__self__, "mount_host", mount_host)
        if namespace_id is not None:
            pulumi.set(__self__, "namespace_id", namespace_id)
        if nas_id is not None:
            pulumi.set(__self__, "nas_id", nas_id)
        if oss_ak_id is not None:
            pulumi.set(__self__, "oss_ak_id", oss_ak_id)
        if oss_ak_secret is not None:
            pulumi.set(__self__, "oss_ak_secret", oss_ak_secret)
        if oss_mount_descs is not None:
            pulumi.set(__self__, "oss_mount_descs", oss_mount_descs)
        if package_url is not None:
            pulumi.set(__self__, "package_url", package_url)
        if package_version is not None:
            pulumi.set(__self__, "package_version", package_version)
        if php_arms_config_location is not None:
            pulumi.set(__self__, "php_arms_config_location", php_arms_config_location)
        if php_config is not None:
            pulumi.set(__self__, "php_config", php_config)
        if php_config_location is not None:
            pulumi.set(__self__, "php_config_location", php_config_location)
        if post_start is not None:
            pulumi.set(__self__, "post_start", post_start)
        if pre_stop is not None:
            pulumi.set(__self__, "pre_stop", pre_stop)
        if readiness is not None:
            pulumi.set(__self__, "readiness", readiness)
        if security_group_id is not None:
            pulumi.set(__self__, "security_group_id", security_group_id)
        if sls_configs is not None:
            pulumi.set(__self__, "sls_configs", sls_configs)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if termination_grace_period_seconds is not None:
            pulumi.set(__self__, "termination_grace_period_seconds", termination_grace_period_seconds)
        if timezone is not None:
            pulumi.set(__self__, "timezone", timezone)
        if tomcat_config is not None:
            pulumi.set(__self__, "tomcat_config", tomcat_config)
        if update_strategy is not None:
            pulumi.set(__self__, "update_strategy", update_strategy)
        if version_id is not None:
            pulumi.set(__self__, "version_id", version_id)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if vswitch_id is not None:
            pulumi.set(__self__, "vswitch_id", vswitch_id)
        if war_start_options is not None:
            pulumi.set(__self__, "war_start_options", war_start_options)
        if web_container is not None:
            pulumi.set(__self__, "web_container", web_container)

    @property
    @pulumi.getter(name="appName")
    def app_name(self) -> pulumi.Input[str]:
        """
        Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.
        """
        return pulumi.get(self, "app_name")

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

    @property
    @pulumi.getter(name="packageType")
    def package_type(self) -> pulumi.Input[str]:
        """
        Application package type. Support FatJar, War and Image. Valid values: `FatJar`, `Image`, `War`.
        """
        return pulumi.get(self, "package_type")

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

    @property
    @pulumi.getter
    def replicas(self) -> pulumi.Input[int]:
        """
        Initial number of instances.
        """
        return pulumi.get(self, "replicas")

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

    @property
    @pulumi.getter(name="acrAssumeRoleArn")
    def acr_assume_role_arn(self) -> Optional[pulumi.Input[str]]:
        """
        The ARN of the RAM role required when pulling images across accounts. Only necessary if the image_url is pointing to an ACR EE instance.
        """
        return pulumi.get(self, "acr_assume_role_arn")

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

    @property
    @pulumi.getter(name="acrInstanceId")
    def acr_instance_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the ACR EE instance. Only necessary if the image_url is pointing to an ACR EE instance.
        """
        return pulumi.get(self, "acr_instance_id")

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

    @property
    @pulumi.getter(name="appDescription")
    def app_description(self) -> Optional[pulumi.Input[str]]:
        """
        Application description information. No more than 1024 characters.
        """
        return pulumi.get(self, "app_description")

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

    @property
    @pulumi.getter(name="autoConfig")
    def auto_config(self) -> Optional[pulumi.Input[bool]]:
        """
        The auto config. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "auto_config")

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

    @property
    @pulumi.getter(name="autoEnableApplicationScalingRule")
    def auto_enable_application_scaling_rule(self) -> Optional[pulumi.Input[bool]]:
        """
        The auto enable application scaling rule. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "auto_enable_application_scaling_rule")

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

    @property
    @pulumi.getter(name="batchWaitTime")
    def batch_wait_time(self) -> Optional[pulumi.Input[int]]:
        """
        The batch wait time.
        """
        return pulumi.get(self, "batch_wait_time")

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

    @property
    @pulumi.getter(name="changeOrderDesc")
    def change_order_desc(self) -> Optional[pulumi.Input[str]]:
        """
        The change order desc.
        """
        return pulumi.get(self, "change_order_desc")

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

    @property
    @pulumi.getter
    def command(self) -> Optional[pulumi.Input[str]]:
        """
        Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.
        """
        return pulumi.get(self, "command")

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

    @property
    @pulumi.getter(name="commandArgs")
    def command_args(self) -> Optional[pulumi.Input[str]]:
        """
        Mirror startup command parameters. The parameters required for the above start command. For example: 1d.
        """
        return pulumi.get(self, "command_args")

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

    @property
    @pulumi.getter(name="configMapMountDesc")
    def config_map_mount_desc(self) -> Optional[pulumi.Input[str]]:
        """
        ConfigMap mount description.
        """
        return pulumi.get(self, "config_map_mount_desc")

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

    @property
    @pulumi.getter
    def cpu(self) -> Optional[pulumi.Input[int]]:
        """
        The CPU required for each instance, in millicores, cannot be 0. Valid values: `1000`, `16000`, `2000`, `32000`, `4000`, `500`, `8000`.
        """
        return pulumi.get(self, "cpu")

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

    @property
    @pulumi.getter(name="customHostAlias")
    def custom_host_alias(self) -> Optional[pulumi.Input[str]]:
        """
        Custom host mapping in the container. For example: [{`hostName`:`samplehost`,`ip`:`127.0.0.1`}].
        """
        return pulumi.get(self, "custom_host_alias")

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

    @property
    @pulumi.getter
    def deploy(self) -> Optional[pulumi.Input[bool]]:
        """
        The deploy. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "deploy")

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

    @property
    @pulumi.getter(name="edasContainerVersion")
    def edas_container_version(self) -> Optional[pulumi.Input[str]]:
        """
        The operating environment used by the Pandora application.
        """
        return pulumi.get(self, "edas_container_version")

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

    @property
    @pulumi.getter(name="enableAhas")
    def enable_ahas(self) -> Optional[pulumi.Input[str]]:
        """
        The enable ahas.
        """
        return pulumi.get(self, "enable_ahas")

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

    @property
    @pulumi.getter(name="enableGreyTagRoute")
    def enable_grey_tag_route(self) -> Optional[pulumi.Input[bool]]:
        """
        The enable grey tag route.
        """
        return pulumi.get(self, "enable_grey_tag_route")

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

    @property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[str]]:
        """
        Container environment variable parameters. For example,`	[{"name":"envtmp","value":"0"}]`. The value description is as follows:
        """
        return pulumi.get(self, "envs")

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

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> Optional[pulumi.Input[str]]:
        """
        Mirror address. Only Image type applications can configure the mirror address.
        """
        return pulumi.get(self, "image_url")

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

    @property
    @pulumi.getter(name="jarStartArgs")
    def jar_start_args(self) -> Optional[pulumi.Input[str]]:
        """
        The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        """
        return pulumi.get(self, "jar_start_args")

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

    @property
    @pulumi.getter(name="jarStartOptions")
    def jar_start_options(self) -> Optional[pulumi.Input[str]]:
        """
        The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        """
        return pulumi.get(self, "jar_start_options")

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

    @property
    @pulumi.getter
    def jdk(self) -> Optional[pulumi.Input[str]]:
        """
        The JDK version that the deployment package depends on. Image type applications are not supported.
        """
        return pulumi.get(self, "jdk")

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

    @property
    @pulumi.getter
    def liveness(self) -> Optional[pulumi.Input[str]]:
        """
        Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.
        """
        return pulumi.get(self, "liveness")

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

    @property
    @pulumi.getter
    def memory(self) -> Optional[pulumi.Input[int]]:
        """
        The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: `1024`, `131072`, `16384`, `2048`, `32768`, `4096`, `65536`, `8192`.
        """
        return pulumi.get(self, "memory")

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

    @property
    @pulumi.getter(name="microRegistration")
    def micro_registration(self) -> Optional[pulumi.Input[str]]:
        """
        Select the Nacos registry. Valid values: `0`, `1`, `2`.
        """
        return pulumi.get(self, "micro_registration")

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

    @property
    @pulumi.getter(name="minReadyInstanceRatio")
    def min_ready_instance_ratio(self) -> Optional[pulumi.Input[int]]:
        """
        Minimum Survival Instance Percentage. **NOTE:** When `min_ready_instances` and `min_ready_instance_ratio` are passed at the same time, and the value of `min_ready_instance_ratio` is not -1, the `min_ready_instance_ratio` parameter shall prevail. Assuming that `min_ready_instances` is 5 and `min_ready_instance_ratio` is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows: 
        * `-1`: Initialization value, indicating that percentages are not used.
        * `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.
        """
        return pulumi.get(self, "min_ready_instance_ratio")

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

    @property
    @pulumi.getter(name="minReadyInstances")
    def min_ready_instances(self) -> Optional[pulumi.Input[int]]:
        """
        The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.
        """
        return pulumi.get(self, "min_ready_instances")

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

    @property
    @pulumi.getter(name="mountDesc")
    def mount_desc(self) -> Optional[pulumi.Input[str]]:
        """
        Mount description.
        """
        return pulumi.get(self, "mount_desc")

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

    @property
    @pulumi.getter(name="mountHost")
    def mount_host(self) -> Optional[pulumi.Input[str]]:
        """
        Mount point of NAS in application VPC.
        """
        return pulumi.get(self, "mount_host")

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

    @property
    @pulumi.getter(name="namespaceId")
    def namespace_id(self) -> Optional[pulumi.Input[str]]:
        """
        SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.
        """
        return pulumi.get(self, "namespace_id")

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

    @property
    @pulumi.getter(name="nasId")
    def nas_id(self) -> Optional[pulumi.Input[str]]:
        """
        ID of the mounted NAS, Must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field is present, a NAS will be automatically purchased and mounted on the switch in the VPC by default.
        """
        return pulumi.get(self, "nas_id")

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

    @property
    @pulumi.getter(name="ossAkId")
    def oss_ak_id(self) -> Optional[pulumi.Input[str]]:
        """
        OSS AccessKey ID.
        """
        return pulumi.get(self, "oss_ak_id")

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

    @property
    @pulumi.getter(name="ossAkSecret")
    def oss_ak_secret(self) -> Optional[pulumi.Input[str]]:
        """
        OSS  AccessKey Secret.
        """
        return pulumi.get(self, "oss_ak_secret")

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

    @property
    @pulumi.getter(name="ossMountDescs")
    def oss_mount_descs(self) -> Optional[pulumi.Input[str]]:
        """
        OSS mount description information.
        """
        return pulumi.get(self, "oss_mount_descs")

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

    @property
    @pulumi.getter(name="packageUrl")
    def package_url(self) -> Optional[pulumi.Input[str]]:
        """
        Deployment package address. Only FatJar or War type applications can configure the deployment package address.
        """
        return pulumi.get(self, "package_url")

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

    @property
    @pulumi.getter(name="packageVersion")
    def package_version(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the deployment package. Required when the Package Type is War and FatJar.
        """
        return pulumi.get(self, "package_version")

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

    @property
    @pulumi.getter(name="phpArmsConfigLocation")
    def php_arms_config_location(self) -> Optional[pulumi.Input[str]]:
        """
        The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.
        """
        return pulumi.get(self, "php_arms_config_location")

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

    @property
    @pulumi.getter(name="phpConfig")
    def php_config(self) -> Optional[pulumi.Input[str]]:
        """
        PHP configuration file content.
        """
        return pulumi.get(self, "php_config")

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

    @property
    @pulumi.getter(name="phpConfigLocation")
    def php_config_location(self) -> Optional[pulumi.Input[str]]:
        """
        PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.
        """
        return pulumi.get(self, "php_config_location")

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

    @property
    @pulumi.getter(name="postStart")
    def post_start(self) -> Optional[pulumi.Input[str]]:
        """
        Execute the script after startup, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        """
        return pulumi.get(self, "post_start")

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

    @property
    @pulumi.getter(name="preStop")
    def pre_stop(self) -> Optional[pulumi.Input[str]]:
        """
        Execute the script before stopping, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        """
        return pulumi.get(self, "pre_stop")

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

    @property
    @pulumi.getter
    def readiness(self) -> Optional[pulumi.Input[str]]:
        """
        Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {`exec`:{`command`:[`sh`,"-c","cat /home/admin/start.sh"]},`initialDelaySeconds`:30,`periodSeconds`:30,"timeoutSeconds ":2}. Valid values: `command`, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.
        """
        return pulumi.get(self, "readiness")

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

    @property
    @pulumi.getter(name="securityGroupId")
    def security_group_id(self) -> Optional[pulumi.Input[str]]:
        """
        Security group ID.
        """
        return pulumi.get(self, "security_group_id")

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

    @property
    @pulumi.getter(name="slsConfigs")
    def sls_configs(self) -> Optional[pulumi.Input[str]]:
        """
        SLS  configuration.
        """
        return pulumi.get(self, "sls_configs")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[str]]:
        """
        The status of the resource. Valid values: `RUNNING`, `STOPPED`.
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        """
        A mapping of tags to assign to the resource.
        """
        return pulumi.get(self, "tags")

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

    @property
    @pulumi.getter(name="terminationGracePeriodSeconds")
    def termination_grace_period_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].
        """
        return pulumi.get(self, "termination_grace_period_seconds")

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

    @property
    @pulumi.getter
    def timezone(self) -> Optional[pulumi.Input[str]]:
        """
        Time zone, the default value is Asia/Shanghai.
        """
        return pulumi.get(self, "timezone")

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

    @property
    @pulumi.getter(name="tomcatConfig")
    def tomcat_config(self) -> Optional[pulumi.Input[str]]:
        """
        Tomcat file configuration, set to "{}" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.
        """
        return pulumi.get(self, "tomcat_config")

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

    @property
    @pulumi.getter(name="updateStrategy")
    def update_strategy(self) -> Optional[pulumi.Input[str]]:
        """
        The update strategy.
        """
        return pulumi.get(self, "update_strategy")

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

    @property
    @pulumi.getter(name="versionId")
    def version_id(self) -> Optional[pulumi.Input[str]]:
        """
        Application version id.
        """
        return pulumi.get(self, "version_id")

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

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> Optional[pulumi.Input[str]]:
        """
        The vpc id.
        """
        return pulumi.get(self, "vpc_id")

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

    @property
    @pulumi.getter(name="vswitchId")
    def vswitch_id(self) -> Optional[pulumi.Input[str]]:
        """
        The vswitch id.
        """
        return pulumi.get(self, "vswitch_id")

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

    @property
    @pulumi.getter(name="warStartOptions")
    def war_start_options(self) -> Optional[pulumi.Input[str]]:
        """
        WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap "$@" start.
        """
        return pulumi.get(self, "war_start_options")

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

    @property
    @pulumi.getter(name="webContainer")
    def web_container(self) -> Optional[pulumi.Input[str]]:
        """
        The version of tomcat that the deployment package depends on. Image type applications are not supported.
        """
        return pulumi.get(self, "web_container")

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


@pulumi.input_type
class _ApplicationState:
    def __init__(__self__, *,
                 acr_assume_role_arn: Optional[pulumi.Input[str]] = None,
                 acr_instance_id: Optional[pulumi.Input[str]] = None,
                 app_description: Optional[pulumi.Input[str]] = None,
                 app_name: Optional[pulumi.Input[str]] = None,
                 auto_config: Optional[pulumi.Input[bool]] = None,
                 auto_enable_application_scaling_rule: Optional[pulumi.Input[bool]] = None,
                 batch_wait_time: Optional[pulumi.Input[int]] = None,
                 change_order_desc: Optional[pulumi.Input[str]] = None,
                 command: Optional[pulumi.Input[str]] = None,
                 command_args: Optional[pulumi.Input[str]] = None,
                 config_map_mount_desc: Optional[pulumi.Input[str]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 custom_host_alias: Optional[pulumi.Input[str]] = None,
                 deploy: Optional[pulumi.Input[bool]] = None,
                 edas_container_version: Optional[pulumi.Input[str]] = None,
                 enable_ahas: Optional[pulumi.Input[str]] = None,
                 enable_grey_tag_route: Optional[pulumi.Input[bool]] = None,
                 envs: Optional[pulumi.Input[str]] = None,
                 image_url: Optional[pulumi.Input[str]] = None,
                 jar_start_args: Optional[pulumi.Input[str]] = None,
                 jar_start_options: Optional[pulumi.Input[str]] = None,
                 jdk: Optional[pulumi.Input[str]] = None,
                 liveness: Optional[pulumi.Input[str]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 micro_registration: Optional[pulumi.Input[str]] = None,
                 min_ready_instance_ratio: Optional[pulumi.Input[int]] = None,
                 min_ready_instances: Optional[pulumi.Input[int]] = None,
                 mount_desc: Optional[pulumi.Input[str]] = None,
                 mount_host: Optional[pulumi.Input[str]] = None,
                 namespace_id: Optional[pulumi.Input[str]] = None,
                 nas_id: Optional[pulumi.Input[str]] = None,
                 oss_ak_id: Optional[pulumi.Input[str]] = None,
                 oss_ak_secret: Optional[pulumi.Input[str]] = None,
                 oss_mount_descs: Optional[pulumi.Input[str]] = None,
                 package_type: Optional[pulumi.Input[str]] = None,
                 package_url: Optional[pulumi.Input[str]] = None,
                 package_version: Optional[pulumi.Input[str]] = None,
                 php_arms_config_location: Optional[pulumi.Input[str]] = None,
                 php_config: Optional[pulumi.Input[str]] = None,
                 php_config_location: Optional[pulumi.Input[str]] = None,
                 post_start: Optional[pulumi.Input[str]] = None,
                 pre_stop: Optional[pulumi.Input[str]] = None,
                 readiness: Optional[pulumi.Input[str]] = None,
                 replicas: Optional[pulumi.Input[int]] = None,
                 security_group_id: Optional[pulumi.Input[str]] = None,
                 sls_configs: Optional[pulumi.Input[str]] = None,
                 status: Optional[pulumi.Input[str]] = None,
                 tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 termination_grace_period_seconds: Optional[pulumi.Input[int]] = None,
                 timezone: Optional[pulumi.Input[str]] = None,
                 tomcat_config: Optional[pulumi.Input[str]] = None,
                 update_strategy: Optional[pulumi.Input[str]] = None,
                 version_id: Optional[pulumi.Input[str]] = None,
                 vpc_id: Optional[pulumi.Input[str]] = None,
                 vswitch_id: Optional[pulumi.Input[str]] = None,
                 war_start_options: Optional[pulumi.Input[str]] = None,
                 web_container: Optional[pulumi.Input[str]] = None):
        """
        Input properties used for looking up and filtering Application resources.
        :param pulumi.Input[str] acr_assume_role_arn: The ARN of the RAM role required when pulling images across accounts. Only necessary if the image_url is pointing to an ACR EE instance.
        :param pulumi.Input[str] acr_instance_id: The ID of the ACR EE instance. Only necessary if the image_url is pointing to an ACR EE instance.
        :param pulumi.Input[str] app_description: Application description information. No more than 1024 characters.
        :param pulumi.Input[str] app_name: Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.
        :param pulumi.Input[bool] auto_config: The auto config. Valid values: `false`, `true`.
        :param pulumi.Input[bool] auto_enable_application_scaling_rule: The auto enable application scaling rule. Valid values: `false`, `true`.
        :param pulumi.Input[int] batch_wait_time: The batch wait time.
        :param pulumi.Input[str] change_order_desc: The change order desc.
        :param pulumi.Input[str] command: Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.
        :param pulumi.Input[str] command_args: Mirror startup command parameters. The parameters required for the above start command. For example: 1d.
        :param pulumi.Input[str] config_map_mount_desc: ConfigMap mount description.
        :param pulumi.Input[int] cpu: The CPU required for each instance, in millicores, cannot be 0. Valid values: `1000`, `16000`, `2000`, `32000`, `4000`, `500`, `8000`.
        :param pulumi.Input[str] custom_host_alias: Custom host mapping in the container. For example: [{`hostName`:`samplehost`,`ip`:`127.0.0.1`}].
        :param pulumi.Input[bool] deploy: The deploy. Valid values: `false`, `true`.
        :param pulumi.Input[str] edas_container_version: The operating environment used by the Pandora application.
        :param pulumi.Input[str] enable_ahas: The enable ahas.
        :param pulumi.Input[bool] enable_grey_tag_route: The enable grey tag route.
        :param pulumi.Input[str] envs: Container environment variable parameters. For example,`	[{"name":"envtmp","value":"0"}]`. The value description is as follows:
        :param pulumi.Input[str] image_url: Mirror address. Only Image type applications can configure the mirror address.
        :param pulumi.Input[str] jar_start_args: The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        :param pulumi.Input[str] jar_start_options: The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        :param pulumi.Input[str] jdk: The JDK version that the deployment package depends on. Image type applications are not supported.
        :param pulumi.Input[str] liveness: Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.
        :param pulumi.Input[int] memory: The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: `1024`, `131072`, `16384`, `2048`, `32768`, `4096`, `65536`, `8192`.
        :param pulumi.Input[str] micro_registration: Select the Nacos registry. Valid values: `0`, `1`, `2`.
        :param pulumi.Input[int] min_ready_instance_ratio: Minimum Survival Instance Percentage. **NOTE:** When `min_ready_instances` and `min_ready_instance_ratio` are passed at the same time, and the value of `min_ready_instance_ratio` is not -1, the `min_ready_instance_ratio` parameter shall prevail. Assuming that `min_ready_instances` is 5 and `min_ready_instance_ratio` is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows: 
               * `-1`: Initialization value, indicating that percentages are not used.
               * `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.
        :param pulumi.Input[int] min_ready_instances: The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.
        :param pulumi.Input[str] mount_desc: Mount description.
        :param pulumi.Input[str] mount_host: Mount point of NAS in application VPC.
        :param pulumi.Input[str] namespace_id: SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.
        :param pulumi.Input[str] nas_id: ID of the mounted NAS, Must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field is present, a NAS will be automatically purchased and mounted on the switch in the VPC by default.
        :param pulumi.Input[str] oss_ak_id: OSS AccessKey ID.
        :param pulumi.Input[str] oss_ak_secret: OSS  AccessKey Secret.
        :param pulumi.Input[str] oss_mount_descs: OSS mount description information.
        :param pulumi.Input[str] package_type: Application package type. Support FatJar, War and Image. Valid values: `FatJar`, `Image`, `War`.
        :param pulumi.Input[str] package_url: Deployment package address. Only FatJar or War type applications can configure the deployment package address.
        :param pulumi.Input[str] package_version: The version number of the deployment package. Required when the Package Type is War and FatJar.
        :param pulumi.Input[str] php_arms_config_location: The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.
        :param pulumi.Input[str] php_config: PHP configuration file content.
        :param pulumi.Input[str] php_config_location: PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.
        :param pulumi.Input[str] post_start: Execute the script after startup, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        :param pulumi.Input[str] pre_stop: Execute the script before stopping, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        :param pulumi.Input[str] readiness: Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {`exec`:{`command`:[`sh`,"-c","cat /home/admin/start.sh"]},`initialDelaySeconds`:30,`periodSeconds`:30,"timeoutSeconds ":2}. Valid values: `command`, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.
        :param pulumi.Input[int] replicas: Initial number of instances.
        :param pulumi.Input[str] security_group_id: Security group ID.
        :param pulumi.Input[str] sls_configs: SLS  configuration.
        :param pulumi.Input[str] status: The status of the resource. Valid values: `RUNNING`, `STOPPED`.
        :param pulumi.Input[Mapping[str, Any]] tags: A mapping of tags to assign to the resource.
        :param pulumi.Input[int] termination_grace_period_seconds: Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].
        :param pulumi.Input[str] timezone: Time zone, the default value is Asia/Shanghai.
        :param pulumi.Input[str] tomcat_config: Tomcat file configuration, set to "{}" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.
        :param pulumi.Input[str] update_strategy: The update strategy.
        :param pulumi.Input[str] version_id: Application version id.
        :param pulumi.Input[str] vpc_id: The vpc id.
        :param pulumi.Input[str] vswitch_id: The vswitch id.
        :param pulumi.Input[str] war_start_options: WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap "$@" start.
        :param pulumi.Input[str] web_container: The version of tomcat that the deployment package depends on. Image type applications are not supported.
        """
        if acr_assume_role_arn is not None:
            pulumi.set(__self__, "acr_assume_role_arn", acr_assume_role_arn)
        if acr_instance_id is not None:
            pulumi.set(__self__, "acr_instance_id", acr_instance_id)
        if app_description is not None:
            pulumi.set(__self__, "app_description", app_description)
        if app_name is not None:
            pulumi.set(__self__, "app_name", app_name)
        if auto_config is not None:
            pulumi.set(__self__, "auto_config", auto_config)
        if auto_enable_application_scaling_rule is not None:
            pulumi.set(__self__, "auto_enable_application_scaling_rule", auto_enable_application_scaling_rule)
        if batch_wait_time is not None:
            pulumi.set(__self__, "batch_wait_time", batch_wait_time)
        if change_order_desc is not None:
            pulumi.set(__self__, "change_order_desc", change_order_desc)
        if command is not None:
            pulumi.set(__self__, "command", command)
        if command_args is not None:
            pulumi.set(__self__, "command_args", command_args)
        if config_map_mount_desc is not None:
            pulumi.set(__self__, "config_map_mount_desc", config_map_mount_desc)
        if cpu is not None:
            pulumi.set(__self__, "cpu", cpu)
        if custom_host_alias is not None:
            pulumi.set(__self__, "custom_host_alias", custom_host_alias)
        if deploy is not None:
            pulumi.set(__self__, "deploy", deploy)
        if edas_container_version is not None:
            pulumi.set(__self__, "edas_container_version", edas_container_version)
        if enable_ahas is not None:
            pulumi.set(__self__, "enable_ahas", enable_ahas)
        if enable_grey_tag_route is not None:
            pulumi.set(__self__, "enable_grey_tag_route", enable_grey_tag_route)
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if image_url is not None:
            pulumi.set(__self__, "image_url", image_url)
        if jar_start_args is not None:
            pulumi.set(__self__, "jar_start_args", jar_start_args)
        if jar_start_options is not None:
            pulumi.set(__self__, "jar_start_options", jar_start_options)
        if jdk is not None:
            pulumi.set(__self__, "jdk", jdk)
        if liveness is not None:
            pulumi.set(__self__, "liveness", liveness)
        if memory is not None:
            pulumi.set(__self__, "memory", memory)
        if micro_registration is not None:
            pulumi.set(__self__, "micro_registration", micro_registration)
        if min_ready_instance_ratio is not None:
            pulumi.set(__self__, "min_ready_instance_ratio", min_ready_instance_ratio)
        if min_ready_instances is not None:
            pulumi.set(__self__, "min_ready_instances", min_ready_instances)
        if mount_desc is not None:
            pulumi.set(__self__, "mount_desc", mount_desc)
        if mount_host is not None:
            pulumi.set(__self__, "mount_host", mount_host)
        if namespace_id is not None:
            pulumi.set(__self__, "namespace_id", namespace_id)
        if nas_id is not None:
            pulumi.set(__self__, "nas_id", nas_id)
        if oss_ak_id is not None:
            pulumi.set(__self__, "oss_ak_id", oss_ak_id)
        if oss_ak_secret is not None:
            pulumi.set(__self__, "oss_ak_secret", oss_ak_secret)
        if oss_mount_descs is not None:
            pulumi.set(__self__, "oss_mount_descs", oss_mount_descs)
        if package_type is not None:
            pulumi.set(__self__, "package_type", package_type)
        if package_url is not None:
            pulumi.set(__self__, "package_url", package_url)
        if package_version is not None:
            pulumi.set(__self__, "package_version", package_version)
        if php_arms_config_location is not None:
            pulumi.set(__self__, "php_arms_config_location", php_arms_config_location)
        if php_config is not None:
            pulumi.set(__self__, "php_config", php_config)
        if php_config_location is not None:
            pulumi.set(__self__, "php_config_location", php_config_location)
        if post_start is not None:
            pulumi.set(__self__, "post_start", post_start)
        if pre_stop is not None:
            pulumi.set(__self__, "pre_stop", pre_stop)
        if readiness is not None:
            pulumi.set(__self__, "readiness", readiness)
        if replicas is not None:
            pulumi.set(__self__, "replicas", replicas)
        if security_group_id is not None:
            pulumi.set(__self__, "security_group_id", security_group_id)
        if sls_configs is not None:
            pulumi.set(__self__, "sls_configs", sls_configs)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if termination_grace_period_seconds is not None:
            pulumi.set(__self__, "termination_grace_period_seconds", termination_grace_period_seconds)
        if timezone is not None:
            pulumi.set(__self__, "timezone", timezone)
        if tomcat_config is not None:
            pulumi.set(__self__, "tomcat_config", tomcat_config)
        if update_strategy is not None:
            pulumi.set(__self__, "update_strategy", update_strategy)
        if version_id is not None:
            pulumi.set(__self__, "version_id", version_id)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if vswitch_id is not None:
            pulumi.set(__self__, "vswitch_id", vswitch_id)
        if war_start_options is not None:
            pulumi.set(__self__, "war_start_options", war_start_options)
        if web_container is not None:
            pulumi.set(__self__, "web_container", web_container)

    @property
    @pulumi.getter(name="acrAssumeRoleArn")
    def acr_assume_role_arn(self) -> Optional[pulumi.Input[str]]:
        """
        The ARN of the RAM role required when pulling images across accounts. Only necessary if the image_url is pointing to an ACR EE instance.
        """
        return pulumi.get(self, "acr_assume_role_arn")

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

    @property
    @pulumi.getter(name="acrInstanceId")
    def acr_instance_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the ACR EE instance. Only necessary if the image_url is pointing to an ACR EE instance.
        """
        return pulumi.get(self, "acr_instance_id")

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

    @property
    @pulumi.getter(name="appDescription")
    def app_description(self) -> Optional[pulumi.Input[str]]:
        """
        Application description information. No more than 1024 characters.
        """
        return pulumi.get(self, "app_description")

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

    @property
    @pulumi.getter(name="appName")
    def app_name(self) -> Optional[pulumi.Input[str]]:
        """
        Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.
        """
        return pulumi.get(self, "app_name")

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

    @property
    @pulumi.getter(name="autoConfig")
    def auto_config(self) -> Optional[pulumi.Input[bool]]:
        """
        The auto config. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "auto_config")

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

    @property
    @pulumi.getter(name="autoEnableApplicationScalingRule")
    def auto_enable_application_scaling_rule(self) -> Optional[pulumi.Input[bool]]:
        """
        The auto enable application scaling rule. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "auto_enable_application_scaling_rule")

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

    @property
    @pulumi.getter(name="batchWaitTime")
    def batch_wait_time(self) -> Optional[pulumi.Input[int]]:
        """
        The batch wait time.
        """
        return pulumi.get(self, "batch_wait_time")

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

    @property
    @pulumi.getter(name="changeOrderDesc")
    def change_order_desc(self) -> Optional[pulumi.Input[str]]:
        """
        The change order desc.
        """
        return pulumi.get(self, "change_order_desc")

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

    @property
    @pulumi.getter
    def command(self) -> Optional[pulumi.Input[str]]:
        """
        Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.
        """
        return pulumi.get(self, "command")

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

    @property
    @pulumi.getter(name="commandArgs")
    def command_args(self) -> Optional[pulumi.Input[str]]:
        """
        Mirror startup command parameters. The parameters required for the above start command. For example: 1d.
        """
        return pulumi.get(self, "command_args")

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

    @property
    @pulumi.getter(name="configMapMountDesc")
    def config_map_mount_desc(self) -> Optional[pulumi.Input[str]]:
        """
        ConfigMap mount description.
        """
        return pulumi.get(self, "config_map_mount_desc")

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

    @property
    @pulumi.getter
    def cpu(self) -> Optional[pulumi.Input[int]]:
        """
        The CPU required for each instance, in millicores, cannot be 0. Valid values: `1000`, `16000`, `2000`, `32000`, `4000`, `500`, `8000`.
        """
        return pulumi.get(self, "cpu")

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

    @property
    @pulumi.getter(name="customHostAlias")
    def custom_host_alias(self) -> Optional[pulumi.Input[str]]:
        """
        Custom host mapping in the container. For example: [{`hostName`:`samplehost`,`ip`:`127.0.0.1`}].
        """
        return pulumi.get(self, "custom_host_alias")

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

    @property
    @pulumi.getter
    def deploy(self) -> Optional[pulumi.Input[bool]]:
        """
        The deploy. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "deploy")

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

    @property
    @pulumi.getter(name="edasContainerVersion")
    def edas_container_version(self) -> Optional[pulumi.Input[str]]:
        """
        The operating environment used by the Pandora application.
        """
        return pulumi.get(self, "edas_container_version")

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

    @property
    @pulumi.getter(name="enableAhas")
    def enable_ahas(self) -> Optional[pulumi.Input[str]]:
        """
        The enable ahas.
        """
        return pulumi.get(self, "enable_ahas")

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

    @property
    @pulumi.getter(name="enableGreyTagRoute")
    def enable_grey_tag_route(self) -> Optional[pulumi.Input[bool]]:
        """
        The enable grey tag route.
        """
        return pulumi.get(self, "enable_grey_tag_route")

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

    @property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[str]]:
        """
        Container environment variable parameters. For example,`	[{"name":"envtmp","value":"0"}]`. The value description is as follows:
        """
        return pulumi.get(self, "envs")

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

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> Optional[pulumi.Input[str]]:
        """
        Mirror address. Only Image type applications can configure the mirror address.
        """
        return pulumi.get(self, "image_url")

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

    @property
    @pulumi.getter(name="jarStartArgs")
    def jar_start_args(self) -> Optional[pulumi.Input[str]]:
        """
        The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        """
        return pulumi.get(self, "jar_start_args")

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

    @property
    @pulumi.getter(name="jarStartOptions")
    def jar_start_options(self) -> Optional[pulumi.Input[str]]:
        """
        The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        """
        return pulumi.get(self, "jar_start_options")

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

    @property
    @pulumi.getter
    def jdk(self) -> Optional[pulumi.Input[str]]:
        """
        The JDK version that the deployment package depends on. Image type applications are not supported.
        """
        return pulumi.get(self, "jdk")

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

    @property
    @pulumi.getter
    def liveness(self) -> Optional[pulumi.Input[str]]:
        """
        Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.
        """
        return pulumi.get(self, "liveness")

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

    @property
    @pulumi.getter
    def memory(self) -> Optional[pulumi.Input[int]]:
        """
        The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: `1024`, `131072`, `16384`, `2048`, `32768`, `4096`, `65536`, `8192`.
        """
        return pulumi.get(self, "memory")

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

    @property
    @pulumi.getter(name="microRegistration")
    def micro_registration(self) -> Optional[pulumi.Input[str]]:
        """
        Select the Nacos registry. Valid values: `0`, `1`, `2`.
        """
        return pulumi.get(self, "micro_registration")

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

    @property
    @pulumi.getter(name="minReadyInstanceRatio")
    def min_ready_instance_ratio(self) -> Optional[pulumi.Input[int]]:
        """
        Minimum Survival Instance Percentage. **NOTE:** When `min_ready_instances` and `min_ready_instance_ratio` are passed at the same time, and the value of `min_ready_instance_ratio` is not -1, the `min_ready_instance_ratio` parameter shall prevail. Assuming that `min_ready_instances` is 5 and `min_ready_instance_ratio` is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows: 
        * `-1`: Initialization value, indicating that percentages are not used.
        * `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.
        """
        return pulumi.get(self, "min_ready_instance_ratio")

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

    @property
    @pulumi.getter(name="minReadyInstances")
    def min_ready_instances(self) -> Optional[pulumi.Input[int]]:
        """
        The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.
        """
        return pulumi.get(self, "min_ready_instances")

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

    @property
    @pulumi.getter(name="mountDesc")
    def mount_desc(self) -> Optional[pulumi.Input[str]]:
        """
        Mount description.
        """
        return pulumi.get(self, "mount_desc")

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

    @property
    @pulumi.getter(name="mountHost")
    def mount_host(self) -> Optional[pulumi.Input[str]]:
        """
        Mount point of NAS in application VPC.
        """
        return pulumi.get(self, "mount_host")

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

    @property
    @pulumi.getter(name="namespaceId")
    def namespace_id(self) -> Optional[pulumi.Input[str]]:
        """
        SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.
        """
        return pulumi.get(self, "namespace_id")

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

    @property
    @pulumi.getter(name="nasId")
    def nas_id(self) -> Optional[pulumi.Input[str]]:
        """
        ID of the mounted NAS, Must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field is present, a NAS will be automatically purchased and mounted on the switch in the VPC by default.
        """
        return pulumi.get(self, "nas_id")

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

    @property
    @pulumi.getter(name="ossAkId")
    def oss_ak_id(self) -> Optional[pulumi.Input[str]]:
        """
        OSS AccessKey ID.
        """
        return pulumi.get(self, "oss_ak_id")

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

    @property
    @pulumi.getter(name="ossAkSecret")
    def oss_ak_secret(self) -> Optional[pulumi.Input[str]]:
        """
        OSS  AccessKey Secret.
        """
        return pulumi.get(self, "oss_ak_secret")

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

    @property
    @pulumi.getter(name="ossMountDescs")
    def oss_mount_descs(self) -> Optional[pulumi.Input[str]]:
        """
        OSS mount description information.
        """
        return pulumi.get(self, "oss_mount_descs")

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

    @property
    @pulumi.getter(name="packageType")
    def package_type(self) -> Optional[pulumi.Input[str]]:
        """
        Application package type. Support FatJar, War and Image. Valid values: `FatJar`, `Image`, `War`.
        """
        return pulumi.get(self, "package_type")

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

    @property
    @pulumi.getter(name="packageUrl")
    def package_url(self) -> Optional[pulumi.Input[str]]:
        """
        Deployment package address. Only FatJar or War type applications can configure the deployment package address.
        """
        return pulumi.get(self, "package_url")

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

    @property
    @pulumi.getter(name="packageVersion")
    def package_version(self) -> Optional[pulumi.Input[str]]:
        """
        The version number of the deployment package. Required when the Package Type is War and FatJar.
        """
        return pulumi.get(self, "package_version")

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

    @property
    @pulumi.getter(name="phpArmsConfigLocation")
    def php_arms_config_location(self) -> Optional[pulumi.Input[str]]:
        """
        The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.
        """
        return pulumi.get(self, "php_arms_config_location")

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

    @property
    @pulumi.getter(name="phpConfig")
    def php_config(self) -> Optional[pulumi.Input[str]]:
        """
        PHP configuration file content.
        """
        return pulumi.get(self, "php_config")

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

    @property
    @pulumi.getter(name="phpConfigLocation")
    def php_config_location(self) -> Optional[pulumi.Input[str]]:
        """
        PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.
        """
        return pulumi.get(self, "php_config_location")

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

    @property
    @pulumi.getter(name="postStart")
    def post_start(self) -> Optional[pulumi.Input[str]]:
        """
        Execute the script after startup, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        """
        return pulumi.get(self, "post_start")

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

    @property
    @pulumi.getter(name="preStop")
    def pre_stop(self) -> Optional[pulumi.Input[str]]:
        """
        Execute the script before stopping, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        """
        return pulumi.get(self, "pre_stop")

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

    @property
    @pulumi.getter
    def readiness(self) -> Optional[pulumi.Input[str]]:
        """
        Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {`exec`:{`command`:[`sh`,"-c","cat /home/admin/start.sh"]},`initialDelaySeconds`:30,`periodSeconds`:30,"timeoutSeconds ":2}. Valid values: `command`, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.
        """
        return pulumi.get(self, "readiness")

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

    @property
    @pulumi.getter
    def replicas(self) -> Optional[pulumi.Input[int]]:
        """
        Initial number of instances.
        """
        return pulumi.get(self, "replicas")

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

    @property
    @pulumi.getter(name="securityGroupId")
    def security_group_id(self) -> Optional[pulumi.Input[str]]:
        """
        Security group ID.
        """
        return pulumi.get(self, "security_group_id")

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

    @property
    @pulumi.getter(name="slsConfigs")
    def sls_configs(self) -> Optional[pulumi.Input[str]]:
        """
        SLS  configuration.
        """
        return pulumi.get(self, "sls_configs")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[str]]:
        """
        The status of the resource. Valid values: `RUNNING`, `STOPPED`.
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        """
        A mapping of tags to assign to the resource.
        """
        return pulumi.get(self, "tags")

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

    @property
    @pulumi.getter(name="terminationGracePeriodSeconds")
    def termination_grace_period_seconds(self) -> Optional[pulumi.Input[int]]:
        """
        Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].
        """
        return pulumi.get(self, "termination_grace_period_seconds")

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

    @property
    @pulumi.getter
    def timezone(self) -> Optional[pulumi.Input[str]]:
        """
        Time zone, the default value is Asia/Shanghai.
        """
        return pulumi.get(self, "timezone")

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

    @property
    @pulumi.getter(name="tomcatConfig")
    def tomcat_config(self) -> Optional[pulumi.Input[str]]:
        """
        Tomcat file configuration, set to "{}" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.
        """
        return pulumi.get(self, "tomcat_config")

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

    @property
    @pulumi.getter(name="updateStrategy")
    def update_strategy(self) -> Optional[pulumi.Input[str]]:
        """
        The update strategy.
        """
        return pulumi.get(self, "update_strategy")

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

    @property
    @pulumi.getter(name="versionId")
    def version_id(self) -> Optional[pulumi.Input[str]]:
        """
        Application version id.
        """
        return pulumi.get(self, "version_id")

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

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> Optional[pulumi.Input[str]]:
        """
        The vpc id.
        """
        return pulumi.get(self, "vpc_id")

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

    @property
    @pulumi.getter(name="vswitchId")
    def vswitch_id(self) -> Optional[pulumi.Input[str]]:
        """
        The vswitch id.
        """
        return pulumi.get(self, "vswitch_id")

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

    @property
    @pulumi.getter(name="warStartOptions")
    def war_start_options(self) -> Optional[pulumi.Input[str]]:
        """
        WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap "$@" start.
        """
        return pulumi.get(self, "war_start_options")

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

    @property
    @pulumi.getter(name="webContainer")
    def web_container(self) -> Optional[pulumi.Input[str]]:
        """
        The version of tomcat that the deployment package depends on. Image type applications are not supported.
        """
        return pulumi.get(self, "web_container")

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


class Application(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 acr_assume_role_arn: Optional[pulumi.Input[str]] = None,
                 acr_instance_id: Optional[pulumi.Input[str]] = None,
                 app_description: Optional[pulumi.Input[str]] = None,
                 app_name: Optional[pulumi.Input[str]] = None,
                 auto_config: Optional[pulumi.Input[bool]] = None,
                 auto_enable_application_scaling_rule: Optional[pulumi.Input[bool]] = None,
                 batch_wait_time: Optional[pulumi.Input[int]] = None,
                 change_order_desc: Optional[pulumi.Input[str]] = None,
                 command: Optional[pulumi.Input[str]] = None,
                 command_args: Optional[pulumi.Input[str]] = None,
                 config_map_mount_desc: Optional[pulumi.Input[str]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 custom_host_alias: Optional[pulumi.Input[str]] = None,
                 deploy: Optional[pulumi.Input[bool]] = None,
                 edas_container_version: Optional[pulumi.Input[str]] = None,
                 enable_ahas: Optional[pulumi.Input[str]] = None,
                 enable_grey_tag_route: Optional[pulumi.Input[bool]] = None,
                 envs: Optional[pulumi.Input[str]] = None,
                 image_url: Optional[pulumi.Input[str]] = None,
                 jar_start_args: Optional[pulumi.Input[str]] = None,
                 jar_start_options: Optional[pulumi.Input[str]] = None,
                 jdk: Optional[pulumi.Input[str]] = None,
                 liveness: Optional[pulumi.Input[str]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 micro_registration: Optional[pulumi.Input[str]] = None,
                 min_ready_instance_ratio: Optional[pulumi.Input[int]] = None,
                 min_ready_instances: Optional[pulumi.Input[int]] = None,
                 mount_desc: Optional[pulumi.Input[str]] = None,
                 mount_host: Optional[pulumi.Input[str]] = None,
                 namespace_id: Optional[pulumi.Input[str]] = None,
                 nas_id: Optional[pulumi.Input[str]] = None,
                 oss_ak_id: Optional[pulumi.Input[str]] = None,
                 oss_ak_secret: Optional[pulumi.Input[str]] = None,
                 oss_mount_descs: Optional[pulumi.Input[str]] = None,
                 package_type: Optional[pulumi.Input[str]] = None,
                 package_url: Optional[pulumi.Input[str]] = None,
                 package_version: Optional[pulumi.Input[str]] = None,
                 php_arms_config_location: Optional[pulumi.Input[str]] = None,
                 php_config: Optional[pulumi.Input[str]] = None,
                 php_config_location: Optional[pulumi.Input[str]] = None,
                 post_start: Optional[pulumi.Input[str]] = None,
                 pre_stop: Optional[pulumi.Input[str]] = None,
                 readiness: Optional[pulumi.Input[str]] = None,
                 replicas: Optional[pulumi.Input[int]] = None,
                 security_group_id: Optional[pulumi.Input[str]] = None,
                 sls_configs: Optional[pulumi.Input[str]] = None,
                 status: Optional[pulumi.Input[str]] = None,
                 tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 termination_grace_period_seconds: Optional[pulumi.Input[int]] = None,
                 timezone: Optional[pulumi.Input[str]] = None,
                 tomcat_config: Optional[pulumi.Input[str]] = None,
                 update_strategy: Optional[pulumi.Input[str]] = None,
                 version_id: Optional[pulumi.Input[str]] = None,
                 vpc_id: Optional[pulumi.Input[str]] = None,
                 vswitch_id: Optional[pulumi.Input[str]] = None,
                 war_start_options: Optional[pulumi.Input[str]] = None,
                 web_container: Optional[pulumi.Input[str]] = None,
                 __props__=None):
        """
        Provides a Serverless App Engine (SAE) Application resource.

        For information about Serverless App Engine (SAE) Application and how to use it, see [What is Application](https://help.aliyun.com/document_detail/97792.html).

        > **NOTE:** Available in v1.161.0+.

        ## Example Usage

        Basic Usage

        ```python
        import pulumi
        import pulumi_alicloud as alicloud

        config = pulumi.Config()
        name = config.get("name")
        if name is None:
            name = "tf-testacc"
        default_zones = alicloud.get_zones(available_resource_creation="VSwitch")
        vpc = alicloud.vpc.Network("vpc",
            vpc_name="tf_testacc",
            cidr_block="172.16.0.0/12")
        vsw = alicloud.vpc.Switch("vsw",
            vpc_id=vpc.id,
            cidr_block="172.16.0.0/24",
            zone_id=default_zones.zones[0].id,
            vswitch_name=name)
        default_namespace = alicloud.sae.Namespace("defaultNamespace",
            namespace_description=name,
            namespace_id="cn-hangzhou:tfacctest",
            namespace_name=name)
        default_application = alicloud.sae.Application("defaultApplication",
            app_description="tf-testaccDescription",
            app_name="tf-testaccAppName",
            namespace_id=default_namespace.id,
            image_url="registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5",
            package_type="Image",
            vpc_id=vsw.vpc_id,
            vswitch_id=vsw.id,
            timezone="Asia/Beijing",
            replicas=5,
            cpu=500,
            memory=2048)
        ```

        ## Import

        Serverless App Engine (SAE) Application can be imported using the id, e.g.

        ```sh
         $ pulumi import alicloud:sae/application:Application example <id>
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[str] acr_assume_role_arn: The ARN of the RAM role required when pulling images across accounts. Only necessary if the image_url is pointing to an ACR EE instance.
        :param pulumi.Input[str] acr_instance_id: The ID of the ACR EE instance. Only necessary if the image_url is pointing to an ACR EE instance.
        :param pulumi.Input[str] app_description: Application description information. No more than 1024 characters.
        :param pulumi.Input[str] app_name: Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.
        :param pulumi.Input[bool] auto_config: The auto config. Valid values: `false`, `true`.
        :param pulumi.Input[bool] auto_enable_application_scaling_rule: The auto enable application scaling rule. Valid values: `false`, `true`.
        :param pulumi.Input[int] batch_wait_time: The batch wait time.
        :param pulumi.Input[str] change_order_desc: The change order desc.
        :param pulumi.Input[str] command: Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.
        :param pulumi.Input[str] command_args: Mirror startup command parameters. The parameters required for the above start command. For example: 1d.
        :param pulumi.Input[str] config_map_mount_desc: ConfigMap mount description.
        :param pulumi.Input[int] cpu: The CPU required for each instance, in millicores, cannot be 0. Valid values: `1000`, `16000`, `2000`, `32000`, `4000`, `500`, `8000`.
        :param pulumi.Input[str] custom_host_alias: Custom host mapping in the container. For example: [{`hostName`:`samplehost`,`ip`:`127.0.0.1`}].
        :param pulumi.Input[bool] deploy: The deploy. Valid values: `false`, `true`.
        :param pulumi.Input[str] edas_container_version: The operating environment used by the Pandora application.
        :param pulumi.Input[str] enable_ahas: The enable ahas.
        :param pulumi.Input[bool] enable_grey_tag_route: The enable grey tag route.
        :param pulumi.Input[str] envs: Container environment variable parameters. For example,`	[{"name":"envtmp","value":"0"}]`. The value description is as follows:
        :param pulumi.Input[str] image_url: Mirror address. Only Image type applications can configure the mirror address.
        :param pulumi.Input[str] jar_start_args: The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        :param pulumi.Input[str] jar_start_options: The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        :param pulumi.Input[str] jdk: The JDK version that the deployment package depends on. Image type applications are not supported.
        :param pulumi.Input[str] liveness: Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.
        :param pulumi.Input[int] memory: The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: `1024`, `131072`, `16384`, `2048`, `32768`, `4096`, `65536`, `8192`.
        :param pulumi.Input[str] micro_registration: Select the Nacos registry. Valid values: `0`, `1`, `2`.
        :param pulumi.Input[int] min_ready_instance_ratio: Minimum Survival Instance Percentage. **NOTE:** When `min_ready_instances` and `min_ready_instance_ratio` are passed at the same time, and the value of `min_ready_instance_ratio` is not -1, the `min_ready_instance_ratio` parameter shall prevail. Assuming that `min_ready_instances` is 5 and `min_ready_instance_ratio` is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows: 
               * `-1`: Initialization value, indicating that percentages are not used.
               * `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.
        :param pulumi.Input[int] min_ready_instances: The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.
        :param pulumi.Input[str] mount_desc: Mount description.
        :param pulumi.Input[str] mount_host: Mount point of NAS in application VPC.
        :param pulumi.Input[str] namespace_id: SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.
        :param pulumi.Input[str] nas_id: ID of the mounted NAS, Must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field is present, a NAS will be automatically purchased and mounted on the switch in the VPC by default.
        :param pulumi.Input[str] oss_ak_id: OSS AccessKey ID.
        :param pulumi.Input[str] oss_ak_secret: OSS  AccessKey Secret.
        :param pulumi.Input[str] oss_mount_descs: OSS mount description information.
        :param pulumi.Input[str] package_type: Application package type. Support FatJar, War and Image. Valid values: `FatJar`, `Image`, `War`.
        :param pulumi.Input[str] package_url: Deployment package address. Only FatJar or War type applications can configure the deployment package address.
        :param pulumi.Input[str] package_version: The version number of the deployment package. Required when the Package Type is War and FatJar.
        :param pulumi.Input[str] php_arms_config_location: The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.
        :param pulumi.Input[str] php_config: PHP configuration file content.
        :param pulumi.Input[str] php_config_location: PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.
        :param pulumi.Input[str] post_start: Execute the script after startup, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        :param pulumi.Input[str] pre_stop: Execute the script before stopping, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        :param pulumi.Input[str] readiness: Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {`exec`:{`command`:[`sh`,"-c","cat /home/admin/start.sh"]},`initialDelaySeconds`:30,`periodSeconds`:30,"timeoutSeconds ":2}. Valid values: `command`, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.
        :param pulumi.Input[int] replicas: Initial number of instances.
        :param pulumi.Input[str] security_group_id: Security group ID.
        :param pulumi.Input[str] sls_configs: SLS  configuration.
        :param pulumi.Input[str] status: The status of the resource. Valid values: `RUNNING`, `STOPPED`.
        :param pulumi.Input[Mapping[str, Any]] tags: A mapping of tags to assign to the resource.
        :param pulumi.Input[int] termination_grace_period_seconds: Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].
        :param pulumi.Input[str] timezone: Time zone, the default value is Asia/Shanghai.
        :param pulumi.Input[str] tomcat_config: Tomcat file configuration, set to "{}" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.
        :param pulumi.Input[str] update_strategy: The update strategy.
        :param pulumi.Input[str] version_id: Application version id.
        :param pulumi.Input[str] vpc_id: The vpc id.
        :param pulumi.Input[str] vswitch_id: The vswitch id.
        :param pulumi.Input[str] war_start_options: WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap "$@" start.
        :param pulumi.Input[str] web_container: The version of tomcat that the deployment package depends on. Image type applications are not supported.
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: ApplicationArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Provides a Serverless App Engine (SAE) Application resource.

        For information about Serverless App Engine (SAE) Application and how to use it, see [What is Application](https://help.aliyun.com/document_detail/97792.html).

        > **NOTE:** Available in v1.161.0+.

        ## Example Usage

        Basic Usage

        ```python
        import pulumi
        import pulumi_alicloud as alicloud

        config = pulumi.Config()
        name = config.get("name")
        if name is None:
            name = "tf-testacc"
        default_zones = alicloud.get_zones(available_resource_creation="VSwitch")
        vpc = alicloud.vpc.Network("vpc",
            vpc_name="tf_testacc",
            cidr_block="172.16.0.0/12")
        vsw = alicloud.vpc.Switch("vsw",
            vpc_id=vpc.id,
            cidr_block="172.16.0.0/24",
            zone_id=default_zones.zones[0].id,
            vswitch_name=name)
        default_namespace = alicloud.sae.Namespace("defaultNamespace",
            namespace_description=name,
            namespace_id="cn-hangzhou:tfacctest",
            namespace_name=name)
        default_application = alicloud.sae.Application("defaultApplication",
            app_description="tf-testaccDescription",
            app_name="tf-testaccAppName",
            namespace_id=default_namespace.id,
            image_url="registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5",
            package_type="Image",
            vpc_id=vsw.vpc_id,
            vswitch_id=vsw.id,
            timezone="Asia/Beijing",
            replicas=5,
            cpu=500,
            memory=2048)
        ```

        ## Import

        Serverless App Engine (SAE) Application can be imported using the id, e.g.

        ```sh
         $ pulumi import alicloud:sae/application:Application example <id>
        ```

        :param str resource_name: The name of the resource.
        :param ApplicationArgs 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(ApplicationArgs, 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,
                 acr_assume_role_arn: Optional[pulumi.Input[str]] = None,
                 acr_instance_id: Optional[pulumi.Input[str]] = None,
                 app_description: Optional[pulumi.Input[str]] = None,
                 app_name: Optional[pulumi.Input[str]] = None,
                 auto_config: Optional[pulumi.Input[bool]] = None,
                 auto_enable_application_scaling_rule: Optional[pulumi.Input[bool]] = None,
                 batch_wait_time: Optional[pulumi.Input[int]] = None,
                 change_order_desc: Optional[pulumi.Input[str]] = None,
                 command: Optional[pulumi.Input[str]] = None,
                 command_args: Optional[pulumi.Input[str]] = None,
                 config_map_mount_desc: Optional[pulumi.Input[str]] = None,
                 cpu: Optional[pulumi.Input[int]] = None,
                 custom_host_alias: Optional[pulumi.Input[str]] = None,
                 deploy: Optional[pulumi.Input[bool]] = None,
                 edas_container_version: Optional[pulumi.Input[str]] = None,
                 enable_ahas: Optional[pulumi.Input[str]] = None,
                 enable_grey_tag_route: Optional[pulumi.Input[bool]] = None,
                 envs: Optional[pulumi.Input[str]] = None,
                 image_url: Optional[pulumi.Input[str]] = None,
                 jar_start_args: Optional[pulumi.Input[str]] = None,
                 jar_start_options: Optional[pulumi.Input[str]] = None,
                 jdk: Optional[pulumi.Input[str]] = None,
                 liveness: Optional[pulumi.Input[str]] = None,
                 memory: Optional[pulumi.Input[int]] = None,
                 micro_registration: Optional[pulumi.Input[str]] = None,
                 min_ready_instance_ratio: Optional[pulumi.Input[int]] = None,
                 min_ready_instances: Optional[pulumi.Input[int]] = None,
                 mount_desc: Optional[pulumi.Input[str]] = None,
                 mount_host: Optional[pulumi.Input[str]] = None,
                 namespace_id: Optional[pulumi.Input[str]] = None,
                 nas_id: Optional[pulumi.Input[str]] = None,
                 oss_ak_id: Optional[pulumi.Input[str]] = None,
                 oss_ak_secret: Optional[pulumi.Input[str]] = None,
                 oss_mount_descs: Optional[pulumi.Input[str]] = None,
                 package_type: Optional[pulumi.Input[str]] = None,
                 package_url: Optional[pulumi.Input[str]] = None,
                 package_version: Optional[pulumi.Input[str]] = None,
                 php_arms_config_location: Optional[pulumi.Input[str]] = None,
                 php_config: Optional[pulumi.Input[str]] = None,
                 php_config_location: Optional[pulumi.Input[str]] = None,
                 post_start: Optional[pulumi.Input[str]] = None,
                 pre_stop: Optional[pulumi.Input[str]] = None,
                 readiness: Optional[pulumi.Input[str]] = None,
                 replicas: Optional[pulumi.Input[int]] = None,
                 security_group_id: Optional[pulumi.Input[str]] = None,
                 sls_configs: Optional[pulumi.Input[str]] = None,
                 status: Optional[pulumi.Input[str]] = None,
                 tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                 termination_grace_period_seconds: Optional[pulumi.Input[int]] = None,
                 timezone: Optional[pulumi.Input[str]] = None,
                 tomcat_config: Optional[pulumi.Input[str]] = None,
                 update_strategy: Optional[pulumi.Input[str]] = None,
                 version_id: Optional[pulumi.Input[str]] = None,
                 vpc_id: Optional[pulumi.Input[str]] = None,
                 vswitch_id: Optional[pulumi.Input[str]] = None,
                 war_start_options: Optional[pulumi.Input[str]] = None,
                 web_container: 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__ = ApplicationArgs.__new__(ApplicationArgs)

            __props__.__dict__["acr_assume_role_arn"] = acr_assume_role_arn
            __props__.__dict__["acr_instance_id"] = acr_instance_id
            __props__.__dict__["app_description"] = app_description
            if app_name is None and not opts.urn:
                raise TypeError("Missing required property 'app_name'")
            __props__.__dict__["app_name"] = app_name
            __props__.__dict__["auto_config"] = auto_config
            __props__.__dict__["auto_enable_application_scaling_rule"] = auto_enable_application_scaling_rule
            __props__.__dict__["batch_wait_time"] = batch_wait_time
            __props__.__dict__["change_order_desc"] = change_order_desc
            __props__.__dict__["command"] = command
            __props__.__dict__["command_args"] = command_args
            __props__.__dict__["config_map_mount_desc"] = config_map_mount_desc
            __props__.__dict__["cpu"] = cpu
            __props__.__dict__["custom_host_alias"] = custom_host_alias
            __props__.__dict__["deploy"] = deploy
            __props__.__dict__["edas_container_version"] = edas_container_version
            __props__.__dict__["enable_ahas"] = enable_ahas
            __props__.__dict__["enable_grey_tag_route"] = enable_grey_tag_route
            __props__.__dict__["envs"] = envs
            __props__.__dict__["image_url"] = image_url
            __props__.__dict__["jar_start_args"] = jar_start_args
            __props__.__dict__["jar_start_options"] = jar_start_options
            __props__.__dict__["jdk"] = jdk
            __props__.__dict__["liveness"] = liveness
            __props__.__dict__["memory"] = memory
            __props__.__dict__["micro_registration"] = micro_registration
            __props__.__dict__["min_ready_instance_ratio"] = min_ready_instance_ratio
            __props__.__dict__["min_ready_instances"] = min_ready_instances
            __props__.__dict__["mount_desc"] = mount_desc
            __props__.__dict__["mount_host"] = mount_host
            __props__.__dict__["namespace_id"] = namespace_id
            __props__.__dict__["nas_id"] = nas_id
            __props__.__dict__["oss_ak_id"] = None if oss_ak_id is None else pulumi.Output.secret(oss_ak_id)
            __props__.__dict__["oss_ak_secret"] = None if oss_ak_secret is None else pulumi.Output.secret(oss_ak_secret)
            __props__.__dict__["oss_mount_descs"] = oss_mount_descs
            if package_type is None and not opts.urn:
                raise TypeError("Missing required property 'package_type'")
            __props__.__dict__["package_type"] = package_type
            __props__.__dict__["package_url"] = package_url
            __props__.__dict__["package_version"] = package_version
            __props__.__dict__["php_arms_config_location"] = php_arms_config_location
            __props__.__dict__["php_config"] = php_config
            __props__.__dict__["php_config_location"] = php_config_location
            __props__.__dict__["post_start"] = post_start
            __props__.__dict__["pre_stop"] = pre_stop
            __props__.__dict__["readiness"] = readiness
            if replicas is None and not opts.urn:
                raise TypeError("Missing required property 'replicas'")
            __props__.__dict__["replicas"] = replicas
            __props__.__dict__["security_group_id"] = security_group_id
            __props__.__dict__["sls_configs"] = sls_configs
            __props__.__dict__["status"] = status
            __props__.__dict__["tags"] = tags
            __props__.__dict__["termination_grace_period_seconds"] = termination_grace_period_seconds
            __props__.__dict__["timezone"] = timezone
            __props__.__dict__["tomcat_config"] = tomcat_config
            __props__.__dict__["update_strategy"] = update_strategy
            __props__.__dict__["version_id"] = version_id
            __props__.__dict__["vpc_id"] = vpc_id
            __props__.__dict__["vswitch_id"] = vswitch_id
            __props__.__dict__["war_start_options"] = war_start_options
            __props__.__dict__["web_container"] = web_container
        secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["ossAkId", "ossAkSecret"])
        opts = pulumi.ResourceOptions.merge(opts, secret_opts)
        super(Application, __self__).__init__(
            'alicloud:sae/application:Application',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            acr_assume_role_arn: Optional[pulumi.Input[str]] = None,
            acr_instance_id: Optional[pulumi.Input[str]] = None,
            app_description: Optional[pulumi.Input[str]] = None,
            app_name: Optional[pulumi.Input[str]] = None,
            auto_config: Optional[pulumi.Input[bool]] = None,
            auto_enable_application_scaling_rule: Optional[pulumi.Input[bool]] = None,
            batch_wait_time: Optional[pulumi.Input[int]] = None,
            change_order_desc: Optional[pulumi.Input[str]] = None,
            command: Optional[pulumi.Input[str]] = None,
            command_args: Optional[pulumi.Input[str]] = None,
            config_map_mount_desc: Optional[pulumi.Input[str]] = None,
            cpu: Optional[pulumi.Input[int]] = None,
            custom_host_alias: Optional[pulumi.Input[str]] = None,
            deploy: Optional[pulumi.Input[bool]] = None,
            edas_container_version: Optional[pulumi.Input[str]] = None,
            enable_ahas: Optional[pulumi.Input[str]] = None,
            enable_grey_tag_route: Optional[pulumi.Input[bool]] = None,
            envs: Optional[pulumi.Input[str]] = None,
            image_url: Optional[pulumi.Input[str]] = None,
            jar_start_args: Optional[pulumi.Input[str]] = None,
            jar_start_options: Optional[pulumi.Input[str]] = None,
            jdk: Optional[pulumi.Input[str]] = None,
            liveness: Optional[pulumi.Input[str]] = None,
            memory: Optional[pulumi.Input[int]] = None,
            micro_registration: Optional[pulumi.Input[str]] = None,
            min_ready_instance_ratio: Optional[pulumi.Input[int]] = None,
            min_ready_instances: Optional[pulumi.Input[int]] = None,
            mount_desc: Optional[pulumi.Input[str]] = None,
            mount_host: Optional[pulumi.Input[str]] = None,
            namespace_id: Optional[pulumi.Input[str]] = None,
            nas_id: Optional[pulumi.Input[str]] = None,
            oss_ak_id: Optional[pulumi.Input[str]] = None,
            oss_ak_secret: Optional[pulumi.Input[str]] = None,
            oss_mount_descs: Optional[pulumi.Input[str]] = None,
            package_type: Optional[pulumi.Input[str]] = None,
            package_url: Optional[pulumi.Input[str]] = None,
            package_version: Optional[pulumi.Input[str]] = None,
            php_arms_config_location: Optional[pulumi.Input[str]] = None,
            php_config: Optional[pulumi.Input[str]] = None,
            php_config_location: Optional[pulumi.Input[str]] = None,
            post_start: Optional[pulumi.Input[str]] = None,
            pre_stop: Optional[pulumi.Input[str]] = None,
            readiness: Optional[pulumi.Input[str]] = None,
            replicas: Optional[pulumi.Input[int]] = None,
            security_group_id: Optional[pulumi.Input[str]] = None,
            sls_configs: Optional[pulumi.Input[str]] = None,
            status: Optional[pulumi.Input[str]] = None,
            tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
            termination_grace_period_seconds: Optional[pulumi.Input[int]] = None,
            timezone: Optional[pulumi.Input[str]] = None,
            tomcat_config: Optional[pulumi.Input[str]] = None,
            update_strategy: Optional[pulumi.Input[str]] = None,
            version_id: Optional[pulumi.Input[str]] = None,
            vpc_id: Optional[pulumi.Input[str]] = None,
            vswitch_id: Optional[pulumi.Input[str]] = None,
            war_start_options: Optional[pulumi.Input[str]] = None,
            web_container: Optional[pulumi.Input[str]] = None) -> 'Application':
        """
        Get an existing Application 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] acr_assume_role_arn: The ARN of the RAM role required when pulling images across accounts. Only necessary if the image_url is pointing to an ACR EE instance.
        :param pulumi.Input[str] acr_instance_id: The ID of the ACR EE instance. Only necessary if the image_url is pointing to an ACR EE instance.
        :param pulumi.Input[str] app_description: Application description information. No more than 1024 characters.
        :param pulumi.Input[str] app_name: Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.
        :param pulumi.Input[bool] auto_config: The auto config. Valid values: `false`, `true`.
        :param pulumi.Input[bool] auto_enable_application_scaling_rule: The auto enable application scaling rule. Valid values: `false`, `true`.
        :param pulumi.Input[int] batch_wait_time: The batch wait time.
        :param pulumi.Input[str] change_order_desc: The change order desc.
        :param pulumi.Input[str] command: Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.
        :param pulumi.Input[str] command_args: Mirror startup command parameters. The parameters required for the above start command. For example: 1d.
        :param pulumi.Input[str] config_map_mount_desc: ConfigMap mount description.
        :param pulumi.Input[int] cpu: The CPU required for each instance, in millicores, cannot be 0. Valid values: `1000`, `16000`, `2000`, `32000`, `4000`, `500`, `8000`.
        :param pulumi.Input[str] custom_host_alias: Custom host mapping in the container. For example: [{`hostName`:`samplehost`,`ip`:`127.0.0.1`}].
        :param pulumi.Input[bool] deploy: The deploy. Valid values: `false`, `true`.
        :param pulumi.Input[str] edas_container_version: The operating environment used by the Pandora application.
        :param pulumi.Input[str] enable_ahas: The enable ahas.
        :param pulumi.Input[bool] enable_grey_tag_route: The enable grey tag route.
        :param pulumi.Input[str] envs: Container environment variable parameters. For example,`	[{"name":"envtmp","value":"0"}]`. The value description is as follows:
        :param pulumi.Input[str] image_url: Mirror address. Only Image type applications can configure the mirror address.
        :param pulumi.Input[str] jar_start_args: The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        :param pulumi.Input[str] jar_start_options: The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        :param pulumi.Input[str] jdk: The JDK version that the deployment package depends on. Image type applications are not supported.
        :param pulumi.Input[str] liveness: Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.
        :param pulumi.Input[int] memory: The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: `1024`, `131072`, `16384`, `2048`, `32768`, `4096`, `65536`, `8192`.
        :param pulumi.Input[str] micro_registration: Select the Nacos registry. Valid values: `0`, `1`, `2`.
        :param pulumi.Input[int] min_ready_instance_ratio: Minimum Survival Instance Percentage. **NOTE:** When `min_ready_instances` and `min_ready_instance_ratio` are passed at the same time, and the value of `min_ready_instance_ratio` is not -1, the `min_ready_instance_ratio` parameter shall prevail. Assuming that `min_ready_instances` is 5 and `min_ready_instance_ratio` is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows: 
               * `-1`: Initialization value, indicating that percentages are not used.
               * `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.
        :param pulumi.Input[int] min_ready_instances: The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.
        :param pulumi.Input[str] mount_desc: Mount description.
        :param pulumi.Input[str] mount_host: Mount point of NAS in application VPC.
        :param pulumi.Input[str] namespace_id: SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.
        :param pulumi.Input[str] nas_id: ID of the mounted NAS, Must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field is present, a NAS will be automatically purchased and mounted on the switch in the VPC by default.
        :param pulumi.Input[str] oss_ak_id: OSS AccessKey ID.
        :param pulumi.Input[str] oss_ak_secret: OSS  AccessKey Secret.
        :param pulumi.Input[str] oss_mount_descs: OSS mount description information.
        :param pulumi.Input[str] package_type: Application package type. Support FatJar, War and Image. Valid values: `FatJar`, `Image`, `War`.
        :param pulumi.Input[str] package_url: Deployment package address. Only FatJar or War type applications can configure the deployment package address.
        :param pulumi.Input[str] package_version: The version number of the deployment package. Required when the Package Type is War and FatJar.
        :param pulumi.Input[str] php_arms_config_location: The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.
        :param pulumi.Input[str] php_config: PHP configuration file content.
        :param pulumi.Input[str] php_config_location: PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.
        :param pulumi.Input[str] post_start: Execute the script after startup, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        :param pulumi.Input[str] pre_stop: Execute the script before stopping, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        :param pulumi.Input[str] readiness: Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {`exec`:{`command`:[`sh`,"-c","cat /home/admin/start.sh"]},`initialDelaySeconds`:30,`periodSeconds`:30,"timeoutSeconds ":2}. Valid values: `command`, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.
        :param pulumi.Input[int] replicas: Initial number of instances.
        :param pulumi.Input[str] security_group_id: Security group ID.
        :param pulumi.Input[str] sls_configs: SLS  configuration.
        :param pulumi.Input[str] status: The status of the resource. Valid values: `RUNNING`, `STOPPED`.
        :param pulumi.Input[Mapping[str, Any]] tags: A mapping of tags to assign to the resource.
        :param pulumi.Input[int] termination_grace_period_seconds: Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].
        :param pulumi.Input[str] timezone: Time zone, the default value is Asia/Shanghai.
        :param pulumi.Input[str] tomcat_config: Tomcat file configuration, set to "{}" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.
        :param pulumi.Input[str] update_strategy: The update strategy.
        :param pulumi.Input[str] version_id: Application version id.
        :param pulumi.Input[str] vpc_id: The vpc id.
        :param pulumi.Input[str] vswitch_id: The vswitch id.
        :param pulumi.Input[str] war_start_options: WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap "$@" start.
        :param pulumi.Input[str] web_container: The version of tomcat that the deployment package depends on. Image type applications are not supported.
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _ApplicationState.__new__(_ApplicationState)

        __props__.__dict__["acr_assume_role_arn"] = acr_assume_role_arn
        __props__.__dict__["acr_instance_id"] = acr_instance_id
        __props__.__dict__["app_description"] = app_description
        __props__.__dict__["app_name"] = app_name
        __props__.__dict__["auto_config"] = auto_config
        __props__.__dict__["auto_enable_application_scaling_rule"] = auto_enable_application_scaling_rule
        __props__.__dict__["batch_wait_time"] = batch_wait_time
        __props__.__dict__["change_order_desc"] = change_order_desc
        __props__.__dict__["command"] = command
        __props__.__dict__["command_args"] = command_args
        __props__.__dict__["config_map_mount_desc"] = config_map_mount_desc
        __props__.__dict__["cpu"] = cpu
        __props__.__dict__["custom_host_alias"] = custom_host_alias
        __props__.__dict__["deploy"] = deploy
        __props__.__dict__["edas_container_version"] = edas_container_version
        __props__.__dict__["enable_ahas"] = enable_ahas
        __props__.__dict__["enable_grey_tag_route"] = enable_grey_tag_route
        __props__.__dict__["envs"] = envs
        __props__.__dict__["image_url"] = image_url
        __props__.__dict__["jar_start_args"] = jar_start_args
        __props__.__dict__["jar_start_options"] = jar_start_options
        __props__.__dict__["jdk"] = jdk
        __props__.__dict__["liveness"] = liveness
        __props__.__dict__["memory"] = memory
        __props__.__dict__["micro_registration"] = micro_registration
        __props__.__dict__["min_ready_instance_ratio"] = min_ready_instance_ratio
        __props__.__dict__["min_ready_instances"] = min_ready_instances
        __props__.__dict__["mount_desc"] = mount_desc
        __props__.__dict__["mount_host"] = mount_host
        __props__.__dict__["namespace_id"] = namespace_id
        __props__.__dict__["nas_id"] = nas_id
        __props__.__dict__["oss_ak_id"] = oss_ak_id
        __props__.__dict__["oss_ak_secret"] = oss_ak_secret
        __props__.__dict__["oss_mount_descs"] = oss_mount_descs
        __props__.__dict__["package_type"] = package_type
        __props__.__dict__["package_url"] = package_url
        __props__.__dict__["package_version"] = package_version
        __props__.__dict__["php_arms_config_location"] = php_arms_config_location
        __props__.__dict__["php_config"] = php_config
        __props__.__dict__["php_config_location"] = php_config_location
        __props__.__dict__["post_start"] = post_start
        __props__.__dict__["pre_stop"] = pre_stop
        __props__.__dict__["readiness"] = readiness
        __props__.__dict__["replicas"] = replicas
        __props__.__dict__["security_group_id"] = security_group_id
        __props__.__dict__["sls_configs"] = sls_configs
        __props__.__dict__["status"] = status
        __props__.__dict__["tags"] = tags
        __props__.__dict__["termination_grace_period_seconds"] = termination_grace_period_seconds
        __props__.__dict__["timezone"] = timezone
        __props__.__dict__["tomcat_config"] = tomcat_config
        __props__.__dict__["update_strategy"] = update_strategy
        __props__.__dict__["version_id"] = version_id
        __props__.__dict__["vpc_id"] = vpc_id
        __props__.__dict__["vswitch_id"] = vswitch_id
        __props__.__dict__["war_start_options"] = war_start_options
        __props__.__dict__["web_container"] = web_container
        return Application(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="acrAssumeRoleArn")
    def acr_assume_role_arn(self) -> pulumi.Output[Optional[str]]:
        """
        The ARN of the RAM role required when pulling images across accounts. Only necessary if the image_url is pointing to an ACR EE instance.
        """
        return pulumi.get(self, "acr_assume_role_arn")

    @property
    @pulumi.getter(name="acrInstanceId")
    def acr_instance_id(self) -> pulumi.Output[Optional[str]]:
        """
        The ID of the ACR EE instance. Only necessary if the image_url is pointing to an ACR EE instance.
        """
        return pulumi.get(self, "acr_instance_id")

    @property
    @pulumi.getter(name="appDescription")
    def app_description(self) -> pulumi.Output[Optional[str]]:
        """
        Application description information. No more than 1024 characters.
        """
        return pulumi.get(self, "app_description")

    @property
    @pulumi.getter(name="appName")
    def app_name(self) -> pulumi.Output[str]:
        """
        Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.
        """
        return pulumi.get(self, "app_name")

    @property
    @pulumi.getter(name="autoConfig")
    def auto_config(self) -> pulumi.Output[Optional[bool]]:
        """
        The auto config. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "auto_config")

    @property
    @pulumi.getter(name="autoEnableApplicationScalingRule")
    def auto_enable_application_scaling_rule(self) -> pulumi.Output[bool]:
        """
        The auto enable application scaling rule. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "auto_enable_application_scaling_rule")

    @property
    @pulumi.getter(name="batchWaitTime")
    def batch_wait_time(self) -> pulumi.Output[int]:
        """
        The batch wait time.
        """
        return pulumi.get(self, "batch_wait_time")

    @property
    @pulumi.getter(name="changeOrderDesc")
    def change_order_desc(self) -> pulumi.Output[str]:
        """
        The change order desc.
        """
        return pulumi.get(self, "change_order_desc")

    @property
    @pulumi.getter
    def command(self) -> pulumi.Output[Optional[str]]:
        """
        Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.
        """
        return pulumi.get(self, "command")

    @property
    @pulumi.getter(name="commandArgs")
    def command_args(self) -> pulumi.Output[Optional[str]]:
        """
        Mirror startup command parameters. The parameters required for the above start command. For example: 1d.
        """
        return pulumi.get(self, "command_args")

    @property
    @pulumi.getter(name="configMapMountDesc")
    def config_map_mount_desc(self) -> pulumi.Output[str]:
        """
        ConfigMap mount description.
        """
        return pulumi.get(self, "config_map_mount_desc")

    @property
    @pulumi.getter
    def cpu(self) -> pulumi.Output[Optional[int]]:
        """
        The CPU required for each instance, in millicores, cannot be 0. Valid values: `1000`, `16000`, `2000`, `32000`, `4000`, `500`, `8000`.
        """
        return pulumi.get(self, "cpu")

    @property
    @pulumi.getter(name="customHostAlias")
    def custom_host_alias(self) -> pulumi.Output[str]:
        """
        Custom host mapping in the container. For example: [{`hostName`:`samplehost`,`ip`:`127.0.0.1`}].
        """
        return pulumi.get(self, "custom_host_alias")

    @property
    @pulumi.getter
    def deploy(self) -> pulumi.Output[Optional[bool]]:
        """
        The deploy. Valid values: `false`, `true`.
        """
        return pulumi.get(self, "deploy")

    @property
    @pulumi.getter(name="edasContainerVersion")
    def edas_container_version(self) -> pulumi.Output[Optional[str]]:
        """
        The operating environment used by the Pandora application.
        """
        return pulumi.get(self, "edas_container_version")

    @property
    @pulumi.getter(name="enableAhas")
    def enable_ahas(self) -> pulumi.Output[str]:
        """
        The enable ahas.
        """
        return pulumi.get(self, "enable_ahas")

    @property
    @pulumi.getter(name="enableGreyTagRoute")
    def enable_grey_tag_route(self) -> pulumi.Output[bool]:
        """
        The enable grey tag route.
        """
        return pulumi.get(self, "enable_grey_tag_route")

    @property
    @pulumi.getter
    def envs(self) -> pulumi.Output[str]:
        """
        Container environment variable parameters. For example,`	[{"name":"envtmp","value":"0"}]`. The value description is as follows:
        """
        return pulumi.get(self, "envs")

    @property
    @pulumi.getter(name="imageUrl")
    def image_url(self) -> pulumi.Output[Optional[str]]:
        """
        Mirror address. Only Image type applications can configure the mirror address.
        """
        return pulumi.get(self, "image_url")

    @property
    @pulumi.getter(name="jarStartArgs")
    def jar_start_args(self) -> pulumi.Output[Optional[str]]:
        """
        The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        """
        return pulumi.get(self, "jar_start_args")

    @property
    @pulumi.getter(name="jarStartOptions")
    def jar_start_options(self) -> pulumi.Output[Optional[str]]:
        """
        The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.
        """
        return pulumi.get(self, "jar_start_options")

    @property
    @pulumi.getter
    def jdk(self) -> pulumi.Output[Optional[str]]:
        """
        The JDK version that the deployment package depends on. Image type applications are not supported.
        """
        return pulumi.get(self, "jdk")

    @property
    @pulumi.getter
    def liveness(self) -> pulumi.Output[Optional[str]]:
        """
        Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.
        """
        return pulumi.get(self, "liveness")

    @property
    @pulumi.getter
    def memory(self) -> pulumi.Output[Optional[int]]:
        """
        The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: `1024`, `131072`, `16384`, `2048`, `32768`, `4096`, `65536`, `8192`.
        """
        return pulumi.get(self, "memory")

    @property
    @pulumi.getter(name="microRegistration")
    def micro_registration(self) -> pulumi.Output[Optional[str]]:
        """
        Select the Nacos registry. Valid values: `0`, `1`, `2`.
        """
        return pulumi.get(self, "micro_registration")

    @property
    @pulumi.getter(name="minReadyInstanceRatio")
    def min_ready_instance_ratio(self) -> pulumi.Output[int]:
        """
        Minimum Survival Instance Percentage. **NOTE:** When `min_ready_instances` and `min_ready_instance_ratio` are passed at the same time, and the value of `min_ready_instance_ratio` is not -1, the `min_ready_instance_ratio` parameter shall prevail. Assuming that `min_ready_instances` is 5 and `min_ready_instance_ratio` is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows: 
        * `-1`: Initialization value, indicating that percentages are not used.
        * `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.
        """
        return pulumi.get(self, "min_ready_instance_ratio")

    @property
    @pulumi.getter(name="minReadyInstances")
    def min_ready_instances(self) -> pulumi.Output[int]:
        """
        The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.
        """
        return pulumi.get(self, "min_ready_instances")

    @property
    @pulumi.getter(name="mountDesc")
    def mount_desc(self) -> pulumi.Output[Optional[str]]:
        """
        Mount description.
        """
        return pulumi.get(self, "mount_desc")

    @property
    @pulumi.getter(name="mountHost")
    def mount_host(self) -> pulumi.Output[Optional[str]]:
        """
        Mount point of NAS in application VPC.
        """
        return pulumi.get(self, "mount_host")

    @property
    @pulumi.getter(name="namespaceId")
    def namespace_id(self) -> pulumi.Output[Optional[str]]:
        """
        SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.
        """
        return pulumi.get(self, "namespace_id")

    @property
    @pulumi.getter(name="nasId")
    def nas_id(self) -> pulumi.Output[Optional[str]]:
        """
        ID of the mounted NAS, Must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field is present, a NAS will be automatically purchased and mounted on the switch in the VPC by default.
        """
        return pulumi.get(self, "nas_id")

    @property
    @pulumi.getter(name="ossAkId")
    def oss_ak_id(self) -> pulumi.Output[Optional[str]]:
        """
        OSS AccessKey ID.
        """
        return pulumi.get(self, "oss_ak_id")

    @property
    @pulumi.getter(name="ossAkSecret")
    def oss_ak_secret(self) -> pulumi.Output[Optional[str]]:
        """
        OSS  AccessKey Secret.
        """
        return pulumi.get(self, "oss_ak_secret")

    @property
    @pulumi.getter(name="ossMountDescs")
    def oss_mount_descs(self) -> pulumi.Output[Optional[str]]:
        """
        OSS mount description information.
        """
        return pulumi.get(self, "oss_mount_descs")

    @property
    @pulumi.getter(name="packageType")
    def package_type(self) -> pulumi.Output[str]:
        """
        Application package type. Support FatJar, War and Image. Valid values: `FatJar`, `Image`, `War`.
        """
        return pulumi.get(self, "package_type")

    @property
    @pulumi.getter(name="packageUrl")
    def package_url(self) -> pulumi.Output[Optional[str]]:
        """
        Deployment package address. Only FatJar or War type applications can configure the deployment package address.
        """
        return pulumi.get(self, "package_url")

    @property
    @pulumi.getter(name="packageVersion")
    def package_version(self) -> pulumi.Output[str]:
        """
        The version number of the deployment package. Required when the Package Type is War and FatJar.
        """
        return pulumi.get(self, "package_version")

    @property
    @pulumi.getter(name="phpArmsConfigLocation")
    def php_arms_config_location(self) -> pulumi.Output[Optional[str]]:
        """
        The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.
        """
        return pulumi.get(self, "php_arms_config_location")

    @property
    @pulumi.getter(name="phpConfig")
    def php_config(self) -> pulumi.Output[Optional[str]]:
        """
        PHP configuration file content.
        """
        return pulumi.get(self, "php_config")

    @property
    @pulumi.getter(name="phpConfigLocation")
    def php_config_location(self) -> pulumi.Output[Optional[str]]:
        """
        PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.
        """
        return pulumi.get(self, "php_config_location")

    @property
    @pulumi.getter(name="postStart")
    def post_start(self) -> pulumi.Output[Optional[str]]:
        """
        Execute the script after startup, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        """
        return pulumi.get(self, "post_start")

    @property
    @pulumi.getter(name="preStop")
    def pre_stop(self) -> pulumi.Output[Optional[str]]:
        """
        Execute the script before stopping, the format is like: {`exec`:{`command`:[`cat`,"/etc/group"]}}.
        """
        return pulumi.get(self, "pre_stop")

    @property
    @pulumi.getter
    def readiness(self) -> pulumi.Output[Optional[str]]:
        """
        Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {`exec`:{`command`:[`sh`,"-c","cat /home/admin/start.sh"]},`initialDelaySeconds`:30,`periodSeconds`:30,"timeoutSeconds ":2}. Valid values: `command`, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.
        """
        return pulumi.get(self, "readiness")

    @property
    @pulumi.getter
    def replicas(self) -> pulumi.Output[int]:
        """
        Initial number of instances.
        """
        return pulumi.get(self, "replicas")

    @property
    @pulumi.getter(name="securityGroupId")
    def security_group_id(self) -> pulumi.Output[str]:
        """
        Security group ID.
        """
        return pulumi.get(self, "security_group_id")

    @property
    @pulumi.getter(name="slsConfigs")
    def sls_configs(self) -> pulumi.Output[Optional[str]]:
        """
        SLS  configuration.
        """
        return pulumi.get(self, "sls_configs")

    @property
    @pulumi.getter
    def status(self) -> pulumi.Output[str]:
        """
        The status of the resource. Valid values: `RUNNING`, `STOPPED`.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter
    def tags(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
        """
        A mapping of tags to assign to the resource.
        """
        return pulumi.get(self, "tags")

    @property
    @pulumi.getter(name="terminationGracePeriodSeconds")
    def termination_grace_period_seconds(self) -> pulumi.Output[int]:
        """
        Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].
        """
        return pulumi.get(self, "termination_grace_period_seconds")

    @property
    @pulumi.getter
    def timezone(self) -> pulumi.Output[str]:
        """
        Time zone, the default value is Asia/Shanghai.
        """
        return pulumi.get(self, "timezone")

    @property
    @pulumi.getter(name="tomcatConfig")
    def tomcat_config(self) -> pulumi.Output[Optional[str]]:
        """
        Tomcat file configuration, set to "{}" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.
        """
        return pulumi.get(self, "tomcat_config")

    @property
    @pulumi.getter(name="updateStrategy")
    def update_strategy(self) -> pulumi.Output[str]:
        """
        The update strategy.
        """
        return pulumi.get(self, "update_strategy")

    @property
    @pulumi.getter(name="versionId")
    def version_id(self) -> pulumi.Output[Optional[str]]:
        """
        Application version id.
        """
        return pulumi.get(self, "version_id")

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> pulumi.Output[Optional[str]]:
        """
        The vpc id.
        """
        return pulumi.get(self, "vpc_id")

    @property
    @pulumi.getter(name="vswitchId")
    def vswitch_id(self) -> pulumi.Output[Optional[str]]:
        """
        The vswitch id.
        """
        return pulumi.get(self, "vswitch_id")

    @property
    @pulumi.getter(name="warStartOptions")
    def war_start_options(self) -> pulumi.Output[Optional[str]]:
        """
        WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap "$@" start.
        """
        return pulumi.get(self, "war_start_options")

    @property
    @pulumi.getter(name="webContainer")
    def web_container(self) -> pulumi.Output[Optional[str]]:
        """
        The version of tomcat that the deployment package depends on. Image type applications are not supported.
        """
        return pulumi.get(self, "web_container")

