text: # 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 warnings
  import pulumi
  import pulumi.runtime
  from typing import Any, Mapping, Optional, Sequence, Union, overload
  from . import _utilities
  from . import outputs
  from ._inputs import *
  
  __all__ = ['ContainerArgs', 'Container']
  
  @pulumi.input_type
  class ContainerArgs:
      def __init__(__self__, *,
                   image: pulumi.Input[str],
                   attach: Optional[pulumi.Input[bool]] = None,
                   capabilities: Optional[pulumi.Input['ContainerCapabilitiesArgs']] = None,
                   command: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   cpu_set: Optional[pulumi.Input[str]] = None,
                   cpu_shares: Optional[pulumi.Input[int]] = None,
                   destroy_grace_seconds: Optional[pulumi.Input[int]] = None,
                   devices: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerDeviceArgs']]]] = None,
                   dns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   dns_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   domainname: Optional[pulumi.Input[str]] = None,
                   entrypoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   envs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   group_adds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   healthcheck: Optional[pulumi.Input['ContainerHealthcheckArgs']] = None,
                   hostname: Optional[pulumi.Input[str]] = None,
                   hosts: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostArgs']]]] = None,
                   init: Optional[pulumi.Input[bool]] = None,
                   ipc_mode: Optional[pulumi.Input[str]] = None,
                   labels: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerLabelArgs']]]] = None,
                   links: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   log_driver: Optional[pulumi.Input[str]] = None,
                   log_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   logs: Optional[pulumi.Input[bool]] = None,
                   max_retry_count: Optional[pulumi.Input[int]] = None,
                   memory: Optional[pulumi.Input[int]] = None,
                   memory_swap: Optional[pulumi.Input[int]] = None,
                   mounts: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerMountArgs']]]] = None,
                   must_run: Optional[pulumi.Input[bool]] = None,
                   name: Optional[pulumi.Input[str]] = None,
                   network_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   network_mode: Optional[pulumi.Input[str]] = None,
                   networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   networks_advanced: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworksAdvancedArgs']]]] = None,
                   pid_mode: Optional[pulumi.Input[str]] = None,
                   ports: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]]] = None,
                   privileged: Optional[pulumi.Input[bool]] = None,
                   publish_all_ports: Optional[pulumi.Input[bool]] = None,
                   read_only: Optional[pulumi.Input[bool]] = None,
                   remove_volumes: Optional[pulumi.Input[bool]] = None,
                   restart: Optional[pulumi.Input[str]] = None,
                   rm: Optional[pulumi.Input[bool]] = None,
                   security_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   shm_size: Optional[pulumi.Input[int]] = None,
                   start: Optional[pulumi.Input[bool]] = None,
                   stdin_open: Optional[pulumi.Input[bool]] = None,
                   storage_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   sysctls: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   tmpfs: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   tty: Optional[pulumi.Input[bool]] = None,
                   ulimits: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUlimitArgs']]]] = None,
                   uploads: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUploadArgs']]]] = None,
                   user: Optional[pulumi.Input[str]] = None,
                   userns_mode: Optional[pulumi.Input[str]] = None,
                   volumes: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerVolumeArgs']]]] = None,
                   working_dir: Optional[pulumi.Input[str]] = None):
          """
          The set of arguments for constructing a Container resource.
          :param pulumi.Input[str] image: The ID of the image to back this container. The easiest way to get this value is to use the `docker_image` resource as
                 is shown in the example.
          :param pulumi.Input[bool] attach: If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`.
          :param pulumi.Input['ContainerCapabilitiesArgs'] capabilities: Add or drop certrain linux capabilities.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] command: The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be
                 `["/usr/bin/myprogram","-","baz.con"]`.
          :param pulumi.Input[str] cpu_set: A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`.
          :param pulumi.Input[int] cpu_shares: CPU shares (relative weight) for the container.
          :param pulumi.Input[int] destroy_grace_seconds: If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on
                 successful stop.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerDeviceArgs']]] devices: Bind devices to the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns: DNS servers to use.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_opts: DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_searches: DNS search domains that are used when bare unqualified hostnames are used inside of the container.
          :param pulumi.Input[str] domainname: Domain name of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] entrypoints: The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an
                 executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be
                 `"/usr/bin/myprogra"]`.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] envs: Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0`
          :param pulumi.Input[Sequence[pulumi.Input[str]]] group_adds: Additional groups for the container user
          :param pulumi.Input['ContainerHealthcheckArgs'] healthcheck: A test to perform to check that the container is healthy
          :param pulumi.Input[str] hostname: Hostname of the container.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerHostArgs']]] hosts: Additional hosts to add to the container.
          :param pulumi.Input[bool] init: Configured whether an init process should be injected for this container. If unset this will default to the `dockerd`
                 defaults.
          :param pulumi.Input[str] ipc_mode: IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:<name|id>` or
                 `host`.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerLabelArgs']]] labels: User-defined key/value metadata
          :param pulumi.Input[Sequence[pulumi.Input[str]]] links: Set of links for link based connectivity between containers that are running on the same host.
          :param pulumi.Input[str] log_driver: The logging driver to use for the container. Defaults to `json-file`.
          :param pulumi.Input[Mapping[str, Any]] log_opts: Key/value pairs to use as options for the logging driver.
          :param pulumi.Input[bool] logs: Save the container logs (`attach` must be enabled). Defaults to `false`.
          :param pulumi.Input[int] max_retry_count: The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'.
          :param pulumi.Input[int] memory: The memory limit for the container in MBs.
          :param pulumi.Input[int] memory_swap: The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `terraform
                 apply` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerMountArgs']]] mounts: Specification for mounts to be added to containers created as part of the service.
          :param pulumi.Input[bool] must_run: If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform
                 assumes it is successful. Defaults to `true`.
          :param pulumi.Input[str] name: The name of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] network_aliases: Set an alias for the container in all specified networks
          :param pulumi.Input[str] network_mode: Network mode of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] networks: ID of the networks in which the container is.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerNetworksAdvancedArgs']]] networks_advanced: The networks the container is attached to
          :param pulumi.Input[str] pid_mode: he PID (Process) Namespace mode for the container. Either `container:<name|id>` or `host`.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]] ports: Publish a container's port(s) to the host.
          :param pulumi.Input[bool] privileged: If `true`, the container runs in privileged mode.
          :param pulumi.Input[bool] publish_all_ports: Publish all ports of the container.
          :param pulumi.Input[bool] read_only: If `true`, the container will be started as readonly. Defaults to `false`.
          :param pulumi.Input[bool] remove_volumes: If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`.
          :param pulumi.Input[str] restart: The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`.
          :param pulumi.Input[bool] rm: If `true`, then the container will be automatically removed after his execution. Terraform won't check this container
                 after creation. Defaults to `false`.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] security_opts: List of string values to customize labels for MLS systems, such as SELinux. See
                 https://docs.docker.com/engine/reference/run/#security-configuration.
          :param pulumi.Input[int] shm_size: Size of `/dev/shm` in MBs.
          :param pulumi.Input[bool] start: If `true`, then the Docker container will be started after creation. If `false`, then the container is only created.
                 Defaults to `true`.
          :param pulumi.Input[bool] stdin_open: If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`.
          :param pulumi.Input[Mapping[str, Any]] storage_opts: Key/value pairs for the storage driver options, e.g. `size`: `120G`
          :param pulumi.Input[Mapping[str, Any]] sysctls: A map of kernel parameters (sysctls) to set in the container.
          :param pulumi.Input[Mapping[str, Any]] tmpfs: A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options.
          :param pulumi.Input[bool] tty: If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerUlimitArgs']]] ulimits: Ulimit options to add.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerUploadArgs']]] uploads: Specifies files to upload to the container before starting it. Only one of `content` or `content_base64` can be set and
                 at least one of them has to be set.
          :param pulumi.Input[str] user: User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by
                 name.
          :param pulumi.Input[str] userns_mode: Sets the usernamespace mode for the container when usernamespace remapping option is enabled.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerVolumeArgs']]] volumes: Spec for mounting volumes in the container.
          :param pulumi.Input[str] working_dir: The working directory for commands to run in.
          """
          pulumi.set(__self__, "image", image)
          if attach is not None:
              pulumi.set(__self__, "attach", attach)
          if capabilities is not None:
              pulumi.set(__self__, "capabilities", capabilities)
          if command is not None:
              pulumi.set(__self__, "command", command)
          if cpu_set is not None:
              pulumi.set(__self__, "cpu_set", cpu_set)
          if cpu_shares is not None:
              pulumi.set(__self__, "cpu_shares", cpu_shares)
          if destroy_grace_seconds is not None:
              pulumi.set(__self__, "destroy_grace_seconds", destroy_grace_seconds)
          if devices is not None:
              pulumi.set(__self__, "devices", devices)
          if dns is not None:
              pulumi.set(__self__, "dns", dns)
          if dns_opts is not None:
              pulumi.set(__self__, "dns_opts", dns_opts)
          if dns_searches is not None:
              pulumi.set(__self__, "dns_searches", dns_searches)
          if domainname is not None:
              pulumi.set(__self__, "domainname", domainname)
          if entrypoints is not None:
              pulumi.set(__self__, "entrypoints", entrypoints)
          if envs is not None:
              pulumi.set(__self__, "envs", envs)
          if group_adds is not None:
              pulumi.set(__self__, "group_adds", group_adds)
          if healthcheck is not None:
              pulumi.set(__self__, "healthcheck", healthcheck)
          if hostname is not None:
              pulumi.set(__self__, "hostname", hostname)
          if hosts is not None:
              pulumi.set(__self__, "hosts", hosts)
          if init is not None:
              pulumi.set(__self__, "init", init)
          if ipc_mode is not None:
              pulumi.set(__self__, "ipc_mode", ipc_mode)
          if labels is not None:
              pulumi.set(__self__, "labels", labels)
          if links is not None:
              warnings.warn("""The --link flag is a legacy feature of Docker. It may eventually be removed.""", DeprecationWarning)
              pulumi.log.warn("""links is deprecated: The --link flag is a legacy feature of Docker. It may eventually be removed.""")
          if links is not None:
              pulumi.set(__self__, "links", links)
          if log_driver is not None:
              pulumi.set(__self__, "log_driver", log_driver)
          if log_opts is not None:
              pulumi.set(__self__, "log_opts", log_opts)
          if logs is not None:
              pulumi.set(__self__, "logs", logs)
          if max_retry_count is not None:
              pulumi.set(__self__, "max_retry_count", max_retry_count)
          if memory is not None:
              pulumi.set(__self__, "memory", memory)
          if memory_swap is not None:
              pulumi.set(__self__, "memory_swap", memory_swap)
          if mounts is not None:
              pulumi.set(__self__, "mounts", mounts)
          if must_run is not None:
              pulumi.set(__self__, "must_run", must_run)
          if name is not None:
              pulumi.set(__self__, "name", name)
          if network_aliases is not None:
              warnings.warn("""Use networks_advanced instead. Will be removed in v3.0.0""", DeprecationWarning)
              pulumi.log.warn("""network_aliases is deprecated: Use networks_advanced instead. Will be removed in v3.0.0""")
          if network_aliases is not None:
              pulumi.set(__self__, "network_aliases", network_aliases)
          if network_mode is not None:
              pulumi.set(__self__, "network_mode", network_mode)
          if networks is not None:
              warnings.warn("""Use networks_advanced instead. Will be removed in v3.0.0""", DeprecationWarning)
              pulumi.log.warn("""networks is deprecated: Use networks_advanced instead. Will be removed in v3.0.0""")
          if networks is not None:
              pulumi.set(__self__, "networks", networks)
          if networks_advanced is not None:
              pulumi.set(__self__, "networks_advanced", networks_advanced)
          if pid_mode is not None:
              pulumi.set(__self__, "pid_mode", pid_mode)
          if ports is not None:
              pulumi.set(__self__, "ports", ports)
          if privileged is not None:
              pulumi.set(__self__, "privileged", privileged)
          if publish_all_ports is not None:
              pulumi.set(__self__, "publish_all_ports", publish_all_ports)
          if read_only is not None:
              pulumi.set(__self__, "read_only", read_only)
          if remove_volumes is not None:
              pulumi.set(__self__, "remove_volumes", remove_volumes)
          if restart is not None:
              pulumi.set(__self__, "restart", restart)
          if rm is not None:
              pulumi.set(__self__, "rm", rm)
          if security_opts is not None:
              pulumi.set(__self__, "security_opts", security_opts)
          if shm_size is not None:
              pulumi.set(__self__, "shm_size", shm_size)
          if start is not None:
              pulumi.set(__self__, "start", start)
          if stdin_open is not None:
              pulumi.set(__self__, "stdin_open", stdin_open)
          if storage_opts is not None:
              pulumi.set(__self__, "storage_opts", storage_opts)
          if sysctls is not None:
              pulumi.set(__self__, "sysctls", sysctls)
          if tmpfs is not None:
              pulumi.set(__self__, "tmpfs", tmpfs)
          if tty is not None:
              pulumi.set(__self__, "tty", tty)
          if ulimits is not None:
              pulumi.set(__self__, "ulimits", ulimits)
          if uploads is not None:
              pulumi.set(__self__, "uploads", uploads)
          if user is not None:
              pulumi.set(__self__, "user", user)
          if userns_mode is not None:
              pulumi.set(__self__, "userns_mode", userns_mode)
          if volumes is not None:
              pulumi.set(__self__, "volumes", volumes)
          if working_dir is not None:
              pulumi.set(__self__, "working_dir", working_dir)
  
      @property
      @pulumi.getter
      def image(self) -> pulumi.Input[str]:
          """
          The ID of the image to back this container. The easiest way to get this value is to use the `docker_image` resource as
          is shown in the example.
          """
          return pulumi.get(self, "image")
  
      @image.setter
      def image(self, value: pulumi.Input[str]):
          pulumi.set(self, "image", value)
  
      @property
      @pulumi.getter
      def attach(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`.
          """
          return pulumi.get(self, "attach")
  
      @attach.setter
      def attach(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "attach", value)
  
      @property
      @pulumi.getter
      def capabilities(self) -> Optional[pulumi.Input['ContainerCapabilitiesArgs']]:
          """
          Add or drop certrain linux capabilities.
          """
          return pulumi.get(self, "capabilities")
  
      @capabilities.setter
      def capabilities(self, value: Optional[pulumi.Input['ContainerCapabilitiesArgs']]):
          pulumi.set(self, "capabilities", value)
  
      @property
      @pulumi.getter
      def command(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be
          `["/usr/bin/myprogram","-","baz.con"]`.
          """
          return pulumi.get(self, "command")
  
      @command.setter
      def command(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "command", value)
  
      @property
      @pulumi.getter(name="cpuSet")
      def cpu_set(self) -> Optional[pulumi.Input[str]]:
          """
          A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`.
          """
          return pulumi.get(self, "cpu_set")
  
      @cpu_set.setter
      def cpu_set(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "cpu_set", value)
  
      @property
      @pulumi.getter(name="cpuShares")
      def cpu_shares(self) -> Optional[pulumi.Input[int]]:
          """
          CPU shares (relative weight) for the container.
          """
          return pulumi.get(self, "cpu_shares")
  
      @cpu_shares.setter
      def cpu_shares(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "cpu_shares", value)
  
      @property
      @pulumi.getter(name="destroyGraceSeconds")
      def destroy_grace_seconds(self) -> Optional[pulumi.Input[int]]:
          """
          If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on
          successful stop.
          """
          return pulumi.get(self, "destroy_grace_seconds")
  
      @destroy_grace_seconds.setter
      def destroy_grace_seconds(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "destroy_grace_seconds", value)
  
      @property
      @pulumi.getter
      def devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerDeviceArgs']]]]:
          """
          Bind devices to the container.
          """
          return pulumi.get(self, "devices")
  
      @devices.setter
      def devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerDeviceArgs']]]]):
          pulumi.set(self, "devices", value)
  
      @property
      @pulumi.getter
      def dns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          DNS servers to use.
          """
          return pulumi.get(self, "dns")
  
      @dns.setter
      def dns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "dns", value)
  
      @property
      @pulumi.getter(name="dnsOpts")
      def dns_opts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options.
          """
          return pulumi.get(self, "dns_opts")
  
      @dns_opts.setter
      def dns_opts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "dns_opts", value)
  
      @property
      @pulumi.getter(name="dnsSearches")
      def dns_searches(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          DNS search domains that are used when bare unqualified hostnames are used inside of the container.
          """
          return pulumi.get(self, "dns_searches")
  
      @dns_searches.setter
      def dns_searches(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "dns_searches", value)
  
      @property
      @pulumi.getter
      def domainname(self) -> Optional[pulumi.Input[str]]:
          """
          Domain name of the container.
          """
          return pulumi.get(self, "domainname")
  
      @domainname.setter
      def domainname(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "domainname", value)
  
      @property
      @pulumi.getter
      def entrypoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an
          executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be
          `"/usr/bin/myprogra"]`.
          """
          return pulumi.get(self, "entrypoints")
  
      @entrypoints.setter
      def entrypoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "entrypoints", value)
  
      @property
      @pulumi.getter
      def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0`
          """
          return pulumi.get(self, "envs")
  
      @envs.setter
      def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "envs", value)
  
      @property
      @pulumi.getter(name="groupAdds")
      def group_adds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          Additional groups for the container user
          """
          return pulumi.get(self, "group_adds")
  
      @group_adds.setter
      def group_adds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "group_adds", value)
  
      @property
      @pulumi.getter
      def healthcheck(self) -> Optional[pulumi.Input['ContainerHealthcheckArgs']]:
          """
          A test to perform to check that the container is healthy
          """
          return pulumi.get(self, "healthcheck")
  
      @healthcheck.setter
      def healthcheck(self, value: Optional[pulumi.Input['ContainerHealthcheckArgs']]):
          pulumi.set(self, "healthcheck", value)
  
      @property
      @pulumi.getter
      def hostname(self) -> Optional[pulumi.Input[str]]:
          """
          Hostname of the container.
          """
          return pulumi.get(self, "hostname")
  
      @hostname.setter
      def hostname(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "hostname", value)
  
      @property
      @pulumi.getter
      def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostArgs']]]]:
          """
          Additional hosts to add to the container.
          """
          return pulumi.get(self, "hosts")
  
      @hosts.setter
      def hosts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostArgs']]]]):
          pulumi.set(self, "hosts", value)
  
      @property
      @pulumi.getter
      def init(self) -> Optional[pulumi.Input[bool]]:
          """
          Configured whether an init process should be injected for this container. If unset this will default to the `dockerd`
          defaults.
          """
          return pulumi.get(self, "init")
  
      @init.setter
      def init(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "init", value)
  
      @property
      @pulumi.getter(name="ipcMode")
      def ipc_mode(self) -> Optional[pulumi.Input[str]]:
          """
          IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:<name|id>` or
          `host`.
          """
          return pulumi.get(self, "ipc_mode")
  
      @ipc_mode.setter
      def ipc_mode(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "ipc_mode", value)
  
      @property
      @pulumi.getter
      def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerLabelArgs']]]]:
          """
          User-defined key/value metadata
          """
          return pulumi.get(self, "labels")
  
      @labels.setter
      def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerLabelArgs']]]]):
          pulumi.set(self, "labels", value)
  
      @property
      @pulumi.getter
      def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          Set of links for link based connectivity between containers that are running on the same host.
          """
          return pulumi.get(self, "links")
  
      @links.setter
      def links(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "links", value)
  
      @property
      @pulumi.getter(name="logDriver")
      def log_driver(self) -> Optional[pulumi.Input[str]]:
          """
          The logging driver to use for the container. Defaults to `json-file`.
          """
          return pulumi.get(self, "log_driver")
  
      @log_driver.setter
      def log_driver(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "log_driver", value)
  
      @property
      @pulumi.getter(name="logOpts")
      def log_opts(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
          """
          Key/value pairs to use as options for the logging driver.
          """
          return pulumi.get(self, "log_opts")
  
      @log_opts.setter
      def log_opts(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
          pulumi.set(self, "log_opts", value)
  
      @property
      @pulumi.getter
      def logs(self) -> Optional[pulumi.Input[bool]]:
          """
          Save the container logs (`attach` must be enabled). Defaults to `false`.
          """
          return pulumi.get(self, "logs")
  
      @logs.setter
      def logs(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "logs", value)
  
      @property
      @pulumi.getter(name="maxRetryCount")
      def max_retry_count(self) -> Optional[pulumi.Input[int]]:
          """
          The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'.
          """
          return pulumi.get(self, "max_retry_count")
  
      @max_retry_count.setter
      def max_retry_count(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "max_retry_count", value)
  
      @property
      @pulumi.getter
      def memory(self) -> Optional[pulumi.Input[int]]:
          """
          The memory limit for the container in MBs.
          """
          return pulumi.get(self, "memory")
  
      @memory.setter
      def memory(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "memory", value)
  
      @property
      @pulumi.getter(name="memorySwap")
      def memory_swap(self) -> Optional[pulumi.Input[int]]:
          """
          The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `terraform
          apply` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation.
          """
          return pulumi.get(self, "memory_swap")
  
      @memory_swap.setter
      def memory_swap(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "memory_swap", value)
  
      @property
      @pulumi.getter
      def mounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerMountArgs']]]]:
          """
          Specification for mounts to be added to containers created as part of the service.
          """
          return pulumi.get(self, "mounts")
  
      @mounts.setter
      def mounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerMountArgs']]]]):
          pulumi.set(self, "mounts", value)
  
      @property
      @pulumi.getter(name="mustRun")
      def must_run(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform
          assumes it is successful. Defaults to `true`.
          """
          return pulumi.get(self, "must_run")
  
      @must_run.setter
      def must_run(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "must_run", value)
  
      @property
      @pulumi.getter
      def name(self) -> Optional[pulumi.Input[str]]:
          """
          The name of the container.
          """
          return pulumi.get(self, "name")
  
      @name.setter
      def name(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "name", value)
  
      @property
      @pulumi.getter(name="networkAliases")
      def network_aliases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          Set an alias for the container in all specified networks
          """
          return pulumi.get(self, "network_aliases")
  
      @network_aliases.setter
      def network_aliases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "network_aliases", value)
  
      @property
      @pulumi.getter(name="networkMode")
      def network_mode(self) -> Optional[pulumi.Input[str]]:
          """
          Network mode of the container.
          """
          return pulumi.get(self, "network_mode")
  
      @network_mode.setter
      def network_mode(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "network_mode", value)
  
      @property
      @pulumi.getter
      def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          ID of the networks in which the container is.
          """
          return pulumi.get(self, "networks")
  
      @networks.setter
      def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "networks", value)
  
      @property
      @pulumi.getter(name="networksAdvanced")
      def networks_advanced(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworksAdvancedArgs']]]]:
          """
          The networks the container is attached to
          """
          return pulumi.get(self, "networks_advanced")
  
      @networks_advanced.setter
      def networks_advanced(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworksAdvancedArgs']]]]):
          pulumi.set(self, "networks_advanced", value)
  
      @property
      @pulumi.getter(name="pidMode")
      def pid_mode(self) -> Optional[pulumi.Input[str]]:
          """
          he PID (Process) Namespace mode for the container. Either `container:<name|id>` or `host`.
          """
          return pulumi.get(self, "pid_mode")
  
      @pid_mode.setter
      def pid_mode(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "pid_mode", value)
  
      @property
      @pulumi.getter
      def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]]]:
          """
          Publish a container's port(s) to the host.
          """
          return pulumi.get(self, "ports")
  
      @ports.setter
      def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]]]):
          pulumi.set(self, "ports", value)
  
      @property
      @pulumi.getter
      def privileged(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, the container runs in privileged mode.
          """
          return pulumi.get(self, "privileged")
  
      @privileged.setter
      def privileged(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "privileged", value)
  
      @property
      @pulumi.getter(name="publishAllPorts")
      def publish_all_ports(self) -> Optional[pulumi.Input[bool]]:
          """
          Publish all ports of the container.
          """
          return pulumi.get(self, "publish_all_ports")
  
      @publish_all_ports.setter
      def publish_all_ports(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "publish_all_ports", value)
  
      @property
      @pulumi.getter(name="readOnly")
      def read_only(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, the container will be started as readonly. Defaults to `false`.
          """
          return pulumi.get(self, "read_only")
  
      @read_only.setter
      def read_only(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "read_only", value)
  
      @property
      @pulumi.getter(name="removeVolumes")
      def remove_volumes(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`.
          """
          return pulumi.get(self, "remove_volumes")
  
      @remove_volumes.setter
      def remove_volumes(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "remove_volumes", value)
  
      @property
      @pulumi.getter
      def restart(self) -> Optional[pulumi.Input[str]]:
          """
          The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`.
          """
          return pulumi.get(self, "restart")
  
      @restart.setter
      def restart(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "restart", value)
  
      @property
      @pulumi.getter
      def rm(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, then the container will be automatically removed after his execution. Terraform won't check this container
          after creation. Defaults to `false`.
          """
          return pulumi.get(self, "rm")
  
      @rm.setter
      def rm(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "rm", value)
  
      @property
      @pulumi.getter(name="securityOpts")
      def security_opts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          List of string values to customize labels for MLS systems, such as SELinux. See
          https://docs.docker.com/engine/reference/run/#security-configuration.
          """
          return pulumi.get(self, "security_opts")
  
      @security_opts.setter
      def security_opts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "security_opts", value)
  
      @property
      @pulumi.getter(name="shmSize")
      def shm_size(self) -> Optional[pulumi.Input[int]]:
          """
          Size of `/dev/shm` in MBs.
          """
          return pulumi.get(self, "shm_size")
  
      @shm_size.setter
      def shm_size(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "shm_size", value)
  
      @property
      @pulumi.getter
      def start(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, then the Docker container will be started after creation. If `false`, then the container is only created.
          Defaults to `true`.
          """
          return pulumi.get(self, "start")
  
      @start.setter
      def start(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "start", value)
  
      @property
      @pulumi.getter(name="stdinOpen")
      def stdin_open(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`.
          """
          return pulumi.get(self, "stdin_open")
  
      @stdin_open.setter
      def stdin_open(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "stdin_open", value)
  
      @property
      @pulumi.getter(name="storageOpts")
      def storage_opts(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
          """
          Key/value pairs for the storage driver options, e.g. `size`: `120G`
          """
          return pulumi.get(self, "storage_opts")
  
      @storage_opts.setter
      def storage_opts(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
          pulumi.set(self, "storage_opts", value)
  
      @property
      @pulumi.getter
      def sysctls(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
          """
          A map of kernel parameters (sysctls) to set in the container.
          """
          return pulumi.get(self, "sysctls")
  
      @sysctls.setter
      def sysctls(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
          pulumi.set(self, "sysctls", value)
  
      @property
      @pulumi.getter
      def tmpfs(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
          """
          A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options.
          """
          return pulumi.get(self, "tmpfs")
  
      @tmpfs.setter
      def tmpfs(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
          pulumi.set(self, "tmpfs", value)
  
      @property
      @pulumi.getter
      def tty(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`.
          """
          return pulumi.get(self, "tty")
  
      @tty.setter
      def tty(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "tty", value)
  
      @property
      @pulumi.getter
      def ulimits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUlimitArgs']]]]:
          """
          Ulimit options to add.
          """
          return pulumi.get(self, "ulimits")
  
      @ulimits.setter
      def ulimits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUlimitArgs']]]]):
          pulumi.set(self, "ulimits", value)
  
      @property
      @pulumi.getter
      def uploads(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUploadArgs']]]]:
          """
          Specifies files to upload to the container before starting it. Only one of `content` or `content_base64` can be set and
          at least one of them has to be set.
          """
          return pulumi.get(self, "uploads")
  
      @uploads.setter
      def uploads(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUploadArgs']]]]):
          pulumi.set(self, "uploads", value)
  
      @property
      @pulumi.getter
      def user(self) -> Optional[pulumi.Input[str]]:
          """
          User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by
          name.
          """
          return pulumi.get(self, "user")
  
      @user.setter
      def user(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "user", value)
  
      @property
      @pulumi.getter(name="usernsMode")
      def userns_mode(self) -> Optional[pulumi.Input[str]]:
          """
          Sets the usernamespace mode for the container when usernamespace remapping option is enabled.
          """
          return pulumi.get(self, "userns_mode")
  
      @userns_mode.setter
      def userns_mode(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "userns_mode", value)
  
      @property
      @pulumi.getter
      def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerVolumeArgs']]]]:
          """
          Spec for mounting volumes in the container.
          """
          return pulumi.get(self, "volumes")
  
      @volumes.setter
      def volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerVolumeArgs']]]]):
          pulumi.set(self, "volumes", value)
  
      @property
      @pulumi.getter(name="workingDir")
      def working_dir(self) -> Optional[pulumi.Input[str]]:
          """
          The working directory for commands to run in.
          """
          return pulumi.get(self, "working_dir")
  
      @working_dir.setter
      def working_dir(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "working_dir", value)
  
  
  @pulumi.input_type
  class _ContainerState:
      def __init__(__self__, *,
                   attach: Optional[pulumi.Input[bool]] = None,
                   bridge: Optional[pulumi.Input[str]] = None,
                   capabilities: Optional[pulumi.Input['ContainerCapabilitiesArgs']] = None,
                   command: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   container_logs: Optional[pulumi.Input[str]] = None,
                   cpu_set: Optional[pulumi.Input[str]] = None,
                   cpu_shares: Optional[pulumi.Input[int]] = None,
                   destroy_grace_seconds: Optional[pulumi.Input[int]] = None,
                   devices: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerDeviceArgs']]]] = None,
                   dns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   dns_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   domainname: Optional[pulumi.Input[str]] = None,
                   entrypoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   envs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   exit_code: Optional[pulumi.Input[int]] = None,
                   gateway: Optional[pulumi.Input[str]] = None,
                   group_adds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   healthcheck: Optional[pulumi.Input['ContainerHealthcheckArgs']] = None,
                   hostname: Optional[pulumi.Input[str]] = None,
                   hosts: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostArgs']]]] = None,
                   image: Optional[pulumi.Input[str]] = None,
                   init: Optional[pulumi.Input[bool]] = None,
                   ip_address: Optional[pulumi.Input[str]] = None,
                   ip_prefix_length: Optional[pulumi.Input[int]] = None,
                   ipc_mode: Optional[pulumi.Input[str]] = None,
                   labels: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerLabelArgs']]]] = None,
                   links: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   log_driver: Optional[pulumi.Input[str]] = None,
                   log_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   logs: Optional[pulumi.Input[bool]] = None,
                   max_retry_count: Optional[pulumi.Input[int]] = None,
                   memory: Optional[pulumi.Input[int]] = None,
                   memory_swap: Optional[pulumi.Input[int]] = None,
                   mounts: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerMountArgs']]]] = None,
                   must_run: Optional[pulumi.Input[bool]] = None,
                   name: Optional[pulumi.Input[str]] = None,
                   network_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   network_datas: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworkDataArgs']]]] = None,
                   network_mode: Optional[pulumi.Input[str]] = None,
                   networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   networks_advanced: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworksAdvancedArgs']]]] = None,
                   pid_mode: Optional[pulumi.Input[str]] = None,
                   ports: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]]] = None,
                   privileged: Optional[pulumi.Input[bool]] = None,
                   publish_all_ports: Optional[pulumi.Input[bool]] = None,
                   read_only: Optional[pulumi.Input[bool]] = None,
                   remove_volumes: Optional[pulumi.Input[bool]] = None,
                   restart: Optional[pulumi.Input[str]] = None,
                   rm: Optional[pulumi.Input[bool]] = None,
                   security_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   shm_size: Optional[pulumi.Input[int]] = None,
                   start: Optional[pulumi.Input[bool]] = None,
                   stdin_open: Optional[pulumi.Input[bool]] = None,
                   storage_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   sysctls: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   tmpfs: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   tty: Optional[pulumi.Input[bool]] = None,
                   ulimits: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUlimitArgs']]]] = None,
                   uploads: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUploadArgs']]]] = None,
                   user: Optional[pulumi.Input[str]] = None,
                   userns_mode: Optional[pulumi.Input[str]] = None,
                   volumes: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerVolumeArgs']]]] = None,
                   working_dir: Optional[pulumi.Input[str]] = None):
          """
          Input properties used for looking up and filtering Container resources.
          :param pulumi.Input[bool] attach: If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`.
          :param pulumi.Input[str] bridge: The network bridge of the container as read from its NetworkSettings.
          :param pulumi.Input['ContainerCapabilitiesArgs'] capabilities: Add or drop certrain linux capabilities.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] command: The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be
                 `["/usr/bin/myprogram","-","baz.con"]`.
          :param pulumi.Input[str] container_logs: The logs of the container if its execution is done (`attach` must be disabled).
          :param pulumi.Input[str] cpu_set: A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`.
          :param pulumi.Input[int] cpu_shares: CPU shares (relative weight) for the container.
          :param pulumi.Input[int] destroy_grace_seconds: If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on
                 successful stop.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerDeviceArgs']]] devices: Bind devices to the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns: DNS servers to use.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_opts: DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_searches: DNS search domains that are used when bare unqualified hostnames are used inside of the container.
          :param pulumi.Input[str] domainname: Domain name of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] entrypoints: The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an
                 executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be
                 `"/usr/bin/myprogra"]`.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] envs: Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0`
          :param pulumi.Input[int] exit_code: The exit code of the container if its execution is done (`must_run` must be disabled).
          :param pulumi.Input[str] gateway: The network gateway of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] group_adds: Additional groups for the container user
          :param pulumi.Input['ContainerHealthcheckArgs'] healthcheck: A test to perform to check that the container is healthy
          :param pulumi.Input[str] hostname: Hostname of the container.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerHostArgs']]] hosts: Additional hosts to add to the container.
          :param pulumi.Input[str] image: The ID of the image to back this container. The easiest way to get this value is to use the `docker_image` resource as
                 is shown in the example.
          :param pulumi.Input[bool] init: Configured whether an init process should be injected for this container. If unset this will default to the `dockerd`
                 defaults.
          :param pulumi.Input[str] ip_address: The IP address of the container.
          :param pulumi.Input[int] ip_prefix_length: The IP prefix length of the container.
          :param pulumi.Input[str] ipc_mode: IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:<name|id>` or
                 `host`.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerLabelArgs']]] labels: User-defined key/value metadata
          :param pulumi.Input[Sequence[pulumi.Input[str]]] links: Set of links for link based connectivity between containers that are running on the same host.
          :param pulumi.Input[str] log_driver: The logging driver to use for the container. Defaults to `json-file`.
          :param pulumi.Input[Mapping[str, Any]] log_opts: Key/value pairs to use as options for the logging driver.
          :param pulumi.Input[bool] logs: Save the container logs (`attach` must be enabled). Defaults to `false`.
          :param pulumi.Input[int] max_retry_count: The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'.
          :param pulumi.Input[int] memory: The memory limit for the container in MBs.
          :param pulumi.Input[int] memory_swap: The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `terraform
                 apply` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerMountArgs']]] mounts: Specification for mounts to be added to containers created as part of the service.
          :param pulumi.Input[bool] must_run: If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform
                 assumes it is successful. Defaults to `true`.
          :param pulumi.Input[str] name: The name of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] network_aliases: Set an alias for the container in all specified networks
          :param pulumi.Input[Sequence[pulumi.Input['ContainerNetworkDataArgs']]] network_datas: The data of the networks the container is connected to.
          :param pulumi.Input[str] network_mode: Network mode of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] networks: ID of the networks in which the container is.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerNetworksAdvancedArgs']]] networks_advanced: The networks the container is attached to
          :param pulumi.Input[str] pid_mode: he PID (Process) Namespace mode for the container. Either `container:<name|id>` or `host`.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]] ports: Publish a container's port(s) to the host.
          :param pulumi.Input[bool] privileged: If `true`, the container runs in privileged mode.
          :param pulumi.Input[bool] publish_all_ports: Publish all ports of the container.
          :param pulumi.Input[bool] read_only: If `true`, the container will be started as readonly. Defaults to `false`.
          :param pulumi.Input[bool] remove_volumes: If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`.
          :param pulumi.Input[str] restart: The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`.
          :param pulumi.Input[bool] rm: If `true`, then the container will be automatically removed after his execution. Terraform won't check this container
                 after creation. Defaults to `false`.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] security_opts: List of string values to customize labels for MLS systems, such as SELinux. See
                 https://docs.docker.com/engine/reference/run/#security-configuration.
          :param pulumi.Input[int] shm_size: Size of `/dev/shm` in MBs.
          :param pulumi.Input[bool] start: If `true`, then the Docker container will be started after creation. If `false`, then the container is only created.
                 Defaults to `true`.
          :param pulumi.Input[bool] stdin_open: If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`.
          :param pulumi.Input[Mapping[str, Any]] storage_opts: Key/value pairs for the storage driver options, e.g. `size`: `120G`
          :param pulumi.Input[Mapping[str, Any]] sysctls: A map of kernel parameters (sysctls) to set in the container.
          :param pulumi.Input[Mapping[str, Any]] tmpfs: A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options.
          :param pulumi.Input[bool] tty: If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerUlimitArgs']]] ulimits: Ulimit options to add.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerUploadArgs']]] uploads: Specifies files to upload to the container before starting it. Only one of `content` or `content_base64` can be set and
                 at least one of them has to be set.
          :param pulumi.Input[str] user: User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by
                 name.
          :param pulumi.Input[str] userns_mode: Sets the usernamespace mode for the container when usernamespace remapping option is enabled.
          :param pulumi.Input[Sequence[pulumi.Input['ContainerVolumeArgs']]] volumes: Spec for mounting volumes in the container.
          :param pulumi.Input[str] working_dir: The working directory for commands to run in.
          """
          if attach is not None:
              pulumi.set(__self__, "attach", attach)
          if bridge is not None:
              pulumi.set(__self__, "bridge", bridge)
          if capabilities is not None:
              pulumi.set(__self__, "capabilities", capabilities)
          if command is not None:
              pulumi.set(__self__, "command", command)
          if container_logs is not None:
              pulumi.set(__self__, "container_logs", container_logs)
          if cpu_set is not None:
              pulumi.set(__self__, "cpu_set", cpu_set)
          if cpu_shares is not None:
              pulumi.set(__self__, "cpu_shares", cpu_shares)
          if destroy_grace_seconds is not None:
              pulumi.set(__self__, "destroy_grace_seconds", destroy_grace_seconds)
          if devices is not None:
              pulumi.set(__self__, "devices", devices)
          if dns is not None:
              pulumi.set(__self__, "dns", dns)
          if dns_opts is not None:
              pulumi.set(__self__, "dns_opts", dns_opts)
          if dns_searches is not None:
              pulumi.set(__self__, "dns_searches", dns_searches)
          if domainname is not None:
              pulumi.set(__self__, "domainname", domainname)
          if entrypoints is not None:
              pulumi.set(__self__, "entrypoints", entrypoints)
          if envs is not None:
              pulumi.set(__self__, "envs", envs)
          if exit_code is not None:
              pulumi.set(__self__, "exit_code", exit_code)
          if gateway is not None:
              warnings.warn("""Use `network_data` instead. The network gateway of the container as read from its NetworkSettings.""", DeprecationWarning)
              pulumi.log.warn("""gateway is deprecated: Use `network_data` instead. The network gateway of the container as read from its NetworkSettings.""")
          if gateway is not None:
              pulumi.set(__self__, "gateway", gateway)
          if group_adds is not None:
              pulumi.set(__self__, "group_adds", group_adds)
          if healthcheck is not None:
              pulumi.set(__self__, "healthcheck", healthcheck)
          if hostname is not None:
              pulumi.set(__self__, "hostname", hostname)
          if hosts is not None:
              pulumi.set(__self__, "hosts", hosts)
          if image is not None:
              pulumi.set(__self__, "image", image)
          if init is not None:
              pulumi.set(__self__, "init", init)
          if ip_address is not None:
              warnings.warn("""Use `network_data` instead. The IP address of the container's first network it.""", DeprecationWarning)
              pulumi.log.warn("""ip_address is deprecated: Use `network_data` instead. The IP address of the container's first network it.""")
          if ip_address is not None:
              pulumi.set(__self__, "ip_address", ip_address)
          if ip_prefix_length is not None:
              warnings.warn("""Use `network_data` instead. The IP prefix length of the container as read from its NetworkSettings.""", DeprecationWarning)
              pulumi.log.warn("""ip_prefix_length is deprecated: Use `network_data` instead. The IP prefix length of the container as read from its NetworkSettings.""")
          if ip_prefix_length is not None:
              pulumi.set(__self__, "ip_prefix_length", ip_prefix_length)
          if ipc_mode is not None:
              pulumi.set(__self__, "ipc_mode", ipc_mode)
          if labels is not None:
              pulumi.set(__self__, "labels", labels)
          if links is not None:
              warnings.warn("""The --link flag is a legacy feature of Docker. It may eventually be removed.""", DeprecationWarning)
              pulumi.log.warn("""links is deprecated: The --link flag is a legacy feature of Docker. It may eventually be removed.""")
          if links is not None:
              pulumi.set(__self__, "links", links)
          if log_driver is not None:
              pulumi.set(__self__, "log_driver", log_driver)
          if log_opts is not None:
              pulumi.set(__self__, "log_opts", log_opts)
          if logs is not None:
              pulumi.set(__self__, "logs", logs)
          if max_retry_count is not None:
              pulumi.set(__self__, "max_retry_count", max_retry_count)
          if memory is not None:
              pulumi.set(__self__, "memory", memory)
          if memory_swap is not None:
              pulumi.set(__self__, "memory_swap", memory_swap)
          if mounts is not None:
              pulumi.set(__self__, "mounts", mounts)
          if must_run is not None:
              pulumi.set(__self__, "must_run", must_run)
          if name is not None:
              pulumi.set(__self__, "name", name)
          if network_aliases is not None:
              warnings.warn("""Use networks_advanced instead. Will be removed in v3.0.0""", DeprecationWarning)
              pulumi.log.warn("""network_aliases is deprecated: Use networks_advanced instead. Will be removed in v3.0.0""")
          if network_aliases is not None:
              pulumi.set(__self__, "network_aliases", network_aliases)
          if network_datas is not None:
              pulumi.set(__self__, "network_datas", network_datas)
          if network_mode is not None:
              pulumi.set(__self__, "network_mode", network_mode)
          if networks is not None:
              warnings.warn("""Use networks_advanced instead. Will be removed in v3.0.0""", DeprecationWarning)
              pulumi.log.warn("""networks is deprecated: Use networks_advanced instead. Will be removed in v3.0.0""")
          if networks is not None:
              pulumi.set(__self__, "networks", networks)
          if networks_advanced is not None:
              pulumi.set(__self__, "networks_advanced", networks_advanced)
          if pid_mode is not None:
              pulumi.set(__self__, "pid_mode", pid_mode)
          if ports is not None:
              pulumi.set(__self__, "ports", ports)
          if privileged is not None:
              pulumi.set(__self__, "privileged", privileged)
          if publish_all_ports is not None:
              pulumi.set(__self__, "publish_all_ports", publish_all_ports)
          if read_only is not None:
              pulumi.set(__self__, "read_only", read_only)
          if remove_volumes is not None:
              pulumi.set(__self__, "remove_volumes", remove_volumes)
          if restart is not None:
              pulumi.set(__self__, "restart", restart)
          if rm is not None:
              pulumi.set(__self__, "rm", rm)
          if security_opts is not None:
              pulumi.set(__self__, "security_opts", security_opts)
          if shm_size is not None:
              pulumi.set(__self__, "shm_size", shm_size)
          if start is not None:
              pulumi.set(__self__, "start", start)
          if stdin_open is not None:
              pulumi.set(__self__, "stdin_open", stdin_open)
          if storage_opts is not None:
              pulumi.set(__self__, "storage_opts", storage_opts)
          if sysctls is not None:
              pulumi.set(__self__, "sysctls", sysctls)
          if tmpfs is not None:
              pulumi.set(__self__, "tmpfs", tmpfs)
          if tty is not None:
              pulumi.set(__self__, "tty", tty)
          if ulimits is not None:
              pulumi.set(__self__, "ulimits", ulimits)
          if uploads is not None:
              pulumi.set(__self__, "uploads", uploads)
          if user is not None:
              pulumi.set(__self__, "user", user)
          if userns_mode is not None:
              pulumi.set(__self__, "userns_mode", userns_mode)
          if volumes is not None:
              pulumi.set(__self__, "volumes", volumes)
          if working_dir is not None:
              pulumi.set(__self__, "working_dir", working_dir)
  
      @property
      @pulumi.getter
      def attach(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`.
          """
          return pulumi.get(self, "attach")
  
      @attach.setter
      def attach(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "attach", value)
  
      @property
      @pulumi.getter
      def bridge(self) -> Optional[pulumi.Input[str]]:
          """
          The network bridge of the container as read from its NetworkSettings.
          """
          return pulumi.get(self, "bridge")
  
      @bridge.setter
      def bridge(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "bridge", value)
  
      @property
      @pulumi.getter
      def capabilities(self) -> Optional[pulumi.Input['ContainerCapabilitiesArgs']]:
          """
          Add or drop certrain linux capabilities.
          """
          return pulumi.get(self, "capabilities")
  
      @capabilities.setter
      def capabilities(self, value: Optional[pulumi.Input['ContainerCapabilitiesArgs']]):
          pulumi.set(self, "capabilities", value)
  
      @property
      @pulumi.getter
      def command(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be
          `["/usr/bin/myprogram","-","baz.con"]`.
          """
          return pulumi.get(self, "command")
  
      @command.setter
      def command(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "command", value)
  
      @property
      @pulumi.getter(name="containerLogs")
      def container_logs(self) -> Optional[pulumi.Input[str]]:
          """
          The logs of the container if its execution is done (`attach` must be disabled).
          """
          return pulumi.get(self, "container_logs")
  
      @container_logs.setter
      def container_logs(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "container_logs", value)
  
      @property
      @pulumi.getter(name="cpuSet")
      def cpu_set(self) -> Optional[pulumi.Input[str]]:
          """
          A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`.
          """
          return pulumi.get(self, "cpu_set")
  
      @cpu_set.setter
      def cpu_set(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "cpu_set", value)
  
      @property
      @pulumi.getter(name="cpuShares")
      def cpu_shares(self) -> Optional[pulumi.Input[int]]:
          """
          CPU shares (relative weight) for the container.
          """
          return pulumi.get(self, "cpu_shares")
  
      @cpu_shares.setter
      def cpu_shares(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "cpu_shares", value)
  
      @property
      @pulumi.getter(name="destroyGraceSeconds")
      def destroy_grace_seconds(self) -> Optional[pulumi.Input[int]]:
          """
          If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on
          successful stop.
          """
          return pulumi.get(self, "destroy_grace_seconds")
  
      @destroy_grace_seconds.setter
      def destroy_grace_seconds(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "destroy_grace_seconds", value)
  
      @property
      @pulumi.getter
      def devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerDeviceArgs']]]]:
          """
          Bind devices to the container.
          """
          return pulumi.get(self, "devices")
  
      @devices.setter
      def devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerDeviceArgs']]]]):
          pulumi.set(self, "devices", value)
  
      @property
      @pulumi.getter
      def dns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          DNS servers to use.
          """
          return pulumi.get(self, "dns")
  
      @dns.setter
      def dns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "dns", value)
  
      @property
      @pulumi.getter(name="dnsOpts")
      def dns_opts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options.
          """
          return pulumi.get(self, "dns_opts")
  
      @dns_opts.setter
      def dns_opts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "dns_opts", value)
  
      @property
      @pulumi.getter(name="dnsSearches")
      def dns_searches(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          DNS search domains that are used when bare unqualified hostnames are used inside of the container.
          """
          return pulumi.get(self, "dns_searches")
  
      @dns_searches.setter
      def dns_searches(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "dns_searches", value)
  
      @property
      @pulumi.getter
      def domainname(self) -> Optional[pulumi.Input[str]]:
          """
          Domain name of the container.
          """
          return pulumi.get(self, "domainname")
  
      @domainname.setter
      def domainname(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "domainname", value)
  
      @property
      @pulumi.getter
      def entrypoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an
          executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be
          `"/usr/bin/myprogra"]`.
          """
          return pulumi.get(self, "entrypoints")
  
      @entrypoints.setter
      def entrypoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "entrypoints", value)
  
      @property
      @pulumi.getter
      def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0`
          """
          return pulumi.get(self, "envs")
  
      @envs.setter
      def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "envs", value)
  
      @property
      @pulumi.getter(name="exitCode")
      def exit_code(self) -> Optional[pulumi.Input[int]]:
          """
          The exit code of the container if its execution is done (`must_run` must be disabled).
          """
          return pulumi.get(self, "exit_code")
  
      @exit_code.setter
      def exit_code(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "exit_code", value)
  
      @property
      @pulumi.getter
      def gateway(self) -> Optional[pulumi.Input[str]]:
          """
          The network gateway of the container.
          """
          return pulumi.get(self, "gateway")
  
      @gateway.setter
      def gateway(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "gateway", value)
  
      @property
      @pulumi.getter(name="groupAdds")
      def group_adds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          Additional groups for the container user
          """
          return pulumi.get(self, "group_adds")
  
      @group_adds.setter
      def group_adds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "group_adds", value)
  
      @property
      @pulumi.getter
      def healthcheck(self) -> Optional[pulumi.Input['ContainerHealthcheckArgs']]:
          """
          A test to perform to check that the container is healthy
          """
          return pulumi.get(self, "healthcheck")
  
      @healthcheck.setter
      def healthcheck(self, value: Optional[pulumi.Input['ContainerHealthcheckArgs']]):
          pulumi.set(self, "healthcheck", value)
  
      @property
      @pulumi.getter
      def hostname(self) -> Optional[pulumi.Input[str]]:
          """
          Hostname of the container.
          """
          return pulumi.get(self, "hostname")
  
      @hostname.setter
      def hostname(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "hostname", value)
  
      @property
      @pulumi.getter
      def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostArgs']]]]:
          """
          Additional hosts to add to the container.
          """
          return pulumi.get(self, "hosts")
  
      @hosts.setter
      def hosts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerHostArgs']]]]):
          pulumi.set(self, "hosts", value)
  
      @property
      @pulumi.getter
      def image(self) -> Optional[pulumi.Input[str]]:
          """
          The ID of the image to back this container. The easiest way to get this value is to use the `docker_image` resource as
          is shown in the example.
          """
          return pulumi.get(self, "image")
  
      @image.setter
      def image(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "image", value)
  
      @property
      @pulumi.getter
      def init(self) -> Optional[pulumi.Input[bool]]:
          """
          Configured whether an init process should be injected for this container. If unset this will default to the `dockerd`
          defaults.
          """
          return pulumi.get(self, "init")
  
      @init.setter
      def init(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "init", value)
  
      @property
      @pulumi.getter(name="ipAddress")
      def ip_address(self) -> Optional[pulumi.Input[str]]:
          """
          The IP address of the container.
          """
          return pulumi.get(self, "ip_address")
  
      @ip_address.setter
      def ip_address(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "ip_address", value)
  
      @property
      @pulumi.getter(name="ipPrefixLength")
      def ip_prefix_length(self) -> Optional[pulumi.Input[int]]:
          """
          The IP prefix length of the container.
          """
          return pulumi.get(self, "ip_prefix_length")
  
      @ip_prefix_length.setter
      def ip_prefix_length(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "ip_prefix_length", value)
  
      @property
      @pulumi.getter(name="ipcMode")
      def ipc_mode(self) -> Optional[pulumi.Input[str]]:
          """
          IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:<name|id>` or
          `host`.
          """
          return pulumi.get(self, "ipc_mode")
  
      @ipc_mode.setter
      def ipc_mode(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "ipc_mode", value)
  
      @property
      @pulumi.getter
      def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerLabelArgs']]]]:
          """
          User-defined key/value metadata
          """
          return pulumi.get(self, "labels")
  
      @labels.setter
      def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerLabelArgs']]]]):
          pulumi.set(self, "labels", value)
  
      @property
      @pulumi.getter
      def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          Set of links for link based connectivity between containers that are running on the same host.
          """
          return pulumi.get(self, "links")
  
      @links.setter
      def links(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "links", value)
  
      @property
      @pulumi.getter(name="logDriver")
      def log_driver(self) -> Optional[pulumi.Input[str]]:
          """
          The logging driver to use for the container. Defaults to `json-file`.
          """
          return pulumi.get(self, "log_driver")
  
      @log_driver.setter
      def log_driver(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "log_driver", value)
  
      @property
      @pulumi.getter(name="logOpts")
      def log_opts(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
          """
          Key/value pairs to use as options for the logging driver.
          """
          return pulumi.get(self, "log_opts")
  
      @log_opts.setter
      def log_opts(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
          pulumi.set(self, "log_opts", value)
  
      @property
      @pulumi.getter
      def logs(self) -> Optional[pulumi.Input[bool]]:
          """
          Save the container logs (`attach` must be enabled). Defaults to `false`.
          """
          return pulumi.get(self, "logs")
  
      @logs.setter
      def logs(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "logs", value)
  
      @property
      @pulumi.getter(name="maxRetryCount")
      def max_retry_count(self) -> Optional[pulumi.Input[int]]:
          """
          The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'.
          """
          return pulumi.get(self, "max_retry_count")
  
      @max_retry_count.setter
      def max_retry_count(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "max_retry_count", value)
  
      @property
      @pulumi.getter
      def memory(self) -> Optional[pulumi.Input[int]]:
          """
          The memory limit for the container in MBs.
          """
          return pulumi.get(self, "memory")
  
      @memory.setter
      def memory(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "memory", value)
  
      @property
      @pulumi.getter(name="memorySwap")
      def memory_swap(self) -> Optional[pulumi.Input[int]]:
          """
          The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `terraform
          apply` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation.
          """
          return pulumi.get(self, "memory_swap")
  
      @memory_swap.setter
      def memory_swap(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "memory_swap", value)
  
      @property
      @pulumi.getter
      def mounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerMountArgs']]]]:
          """
          Specification for mounts to be added to containers created as part of the service.
          """
          return pulumi.get(self, "mounts")
  
      @mounts.setter
      def mounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerMountArgs']]]]):
          pulumi.set(self, "mounts", value)
  
      @property
      @pulumi.getter(name="mustRun")
      def must_run(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform
          assumes it is successful. Defaults to `true`.
          """
          return pulumi.get(self, "must_run")
  
      @must_run.setter
      def must_run(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "must_run", value)
  
      @property
      @pulumi.getter
      def name(self) -> Optional[pulumi.Input[str]]:
          """
          The name of the container.
          """
          return pulumi.get(self, "name")
  
      @name.setter
      def name(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "name", value)
  
      @property
      @pulumi.getter(name="networkAliases")
      def network_aliases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          Set an alias for the container in all specified networks
          """
          return pulumi.get(self, "network_aliases")
  
      @network_aliases.setter
      def network_aliases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "network_aliases", value)
  
      @property
      @pulumi.getter(name="networkDatas")
      def network_datas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworkDataArgs']]]]:
          """
          The data of the networks the container is connected to.
          """
          return pulumi.get(self, "network_datas")
  
      @network_datas.setter
      def network_datas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworkDataArgs']]]]):
          pulumi.set(self, "network_datas", value)
  
      @property
      @pulumi.getter(name="networkMode")
      def network_mode(self) -> Optional[pulumi.Input[str]]:
          """
          Network mode of the container.
          """
          return pulumi.get(self, "network_mode")
  
      @network_mode.setter
      def network_mode(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "network_mode", value)
  
      @property
      @pulumi.getter
      def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          ID of the networks in which the container is.
          """
          return pulumi.get(self, "networks")
  
      @networks.setter
      def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "networks", value)
  
      @property
      @pulumi.getter(name="networksAdvanced")
      def networks_advanced(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworksAdvancedArgs']]]]:
          """
          The networks the container is attached to
          """
          return pulumi.get(self, "networks_advanced")
  
      @networks_advanced.setter
      def networks_advanced(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerNetworksAdvancedArgs']]]]):
          pulumi.set(self, "networks_advanced", value)
  
      @property
      @pulumi.getter(name="pidMode")
      def pid_mode(self) -> Optional[pulumi.Input[str]]:
          """
          he PID (Process) Namespace mode for the container. Either `container:<name|id>` or `host`.
          """
          return pulumi.get(self, "pid_mode")
  
      @pid_mode.setter
      def pid_mode(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "pid_mode", value)
  
      @property
      @pulumi.getter
      def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]]]:
          """
          Publish a container's port(s) to the host.
          """
          return pulumi.get(self, "ports")
  
      @ports.setter
      def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerPortArgs']]]]):
          pulumi.set(self, "ports", value)
  
      @property
      @pulumi.getter
      def privileged(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, the container runs in privileged mode.
          """
          return pulumi.get(self, "privileged")
  
      @privileged.setter
      def privileged(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "privileged", value)
  
      @property
      @pulumi.getter(name="publishAllPorts")
      def publish_all_ports(self) -> Optional[pulumi.Input[bool]]:
          """
          Publish all ports of the container.
          """
          return pulumi.get(self, "publish_all_ports")
  
      @publish_all_ports.setter
      def publish_all_ports(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "publish_all_ports", value)
  
      @property
      @pulumi.getter(name="readOnly")
      def read_only(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, the container will be started as readonly. Defaults to `false`.
          """
          return pulumi.get(self, "read_only")
  
      @read_only.setter
      def read_only(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "read_only", value)
  
      @property
      @pulumi.getter(name="removeVolumes")
      def remove_volumes(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`.
          """
          return pulumi.get(self, "remove_volumes")
  
      @remove_volumes.setter
      def remove_volumes(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "remove_volumes", value)
  
      @property
      @pulumi.getter
      def restart(self) -> Optional[pulumi.Input[str]]:
          """
          The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`.
          """
          return pulumi.get(self, "restart")
  
      @restart.setter
      def restart(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "restart", value)
  
      @property
      @pulumi.getter
      def rm(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, then the container will be automatically removed after his execution. Terraform won't check this container
          after creation. Defaults to `false`.
          """
          return pulumi.get(self, "rm")
  
      @rm.setter
      def rm(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "rm", value)
  
      @property
      @pulumi.getter(name="securityOpts")
      def security_opts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          List of string values to customize labels for MLS systems, such as SELinux. See
          https://docs.docker.com/engine/reference/run/#security-configuration.
          """
          return pulumi.get(self, "security_opts")
  
      @security_opts.setter
      def security_opts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "security_opts", value)
  
      @property
      @pulumi.getter(name="shmSize")
      def shm_size(self) -> Optional[pulumi.Input[int]]:
          """
          Size of `/dev/shm` in MBs.
          """
          return pulumi.get(self, "shm_size")
  
      @shm_size.setter
      def shm_size(self, value: Optional[pulumi.Input[int]]):
          pulumi.set(self, "shm_size", value)
  
      @property
      @pulumi.getter
      def start(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, then the Docker container will be started after creation. If `false`, then the container is only created.
          Defaults to `true`.
          """
          return pulumi.get(self, "start")
  
      @start.setter
      def start(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "start", value)
  
      @property
      @pulumi.getter(name="stdinOpen")
      def stdin_open(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`.
          """
          return pulumi.get(self, "stdin_open")
  
      @stdin_open.setter
      def stdin_open(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "stdin_open", value)
  
      @property
      @pulumi.getter(name="storageOpts")
      def storage_opts(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
          """
          Key/value pairs for the storage driver options, e.g. `size`: `120G`
          """
          return pulumi.get(self, "storage_opts")
  
      @storage_opts.setter
      def storage_opts(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
          pulumi.set(self, "storage_opts", value)
  
      @property
      @pulumi.getter
      def sysctls(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
          """
          A map of kernel parameters (sysctls) to set in the container.
          """
          return pulumi.get(self, "sysctls")
  
      @sysctls.setter
      def sysctls(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
          pulumi.set(self, "sysctls", value)
  
      @property
      @pulumi.getter
      def tmpfs(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
          """
          A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options.
          """
          return pulumi.get(self, "tmpfs")
  
      @tmpfs.setter
      def tmpfs(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
          pulumi.set(self, "tmpfs", value)
  
      @property
      @pulumi.getter
      def tty(self) -> Optional[pulumi.Input[bool]]:
          """
          If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`.
          """
          return pulumi.get(self, "tty")
  
      @tty.setter
      def tty(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "tty", value)
  
      @property
      @pulumi.getter
      def ulimits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUlimitArgs']]]]:
          """
          Ulimit options to add.
          """
          return pulumi.get(self, "ulimits")
  
      @ulimits.setter
      def ulimits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUlimitArgs']]]]):
          pulumi.set(self, "ulimits", value)
  
      @property
      @pulumi.getter
      def uploads(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUploadArgs']]]]:
          """
          Specifies files to upload to the container before starting it. Only one of `content` or `content_base64` can be set and
          at least one of them has to be set.
          """
          return pulumi.get(self, "uploads")
  
      @uploads.setter
      def uploads(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerUploadArgs']]]]):
          pulumi.set(self, "uploads", value)
  
      @property
      @pulumi.getter
      def user(self) -> Optional[pulumi.Input[str]]:
          """
          User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by
          name.
          """
          return pulumi.get(self, "user")
  
      @user.setter
      def user(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "user", value)
  
      @property
      @pulumi.getter(name="usernsMode")
      def userns_mode(self) -> Optional[pulumi.Input[str]]:
          """
          Sets the usernamespace mode for the container when usernamespace remapping option is enabled.
          """
          return pulumi.get(self, "userns_mode")
  
      @userns_mode.setter
      def userns_mode(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "userns_mode", value)
  
      @property
      @pulumi.getter
      def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ContainerVolumeArgs']]]]:
          """
          Spec for mounting volumes in the container.
          """
          return pulumi.get(self, "volumes")
  
      @volumes.setter
      def volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ContainerVolumeArgs']]]]):
          pulumi.set(self, "volumes", value)
  
      @property
      @pulumi.getter(name="workingDir")
      def working_dir(self) -> Optional[pulumi.Input[str]]:
          """
          The working directory for commands to run in.
          """
          return pulumi.get(self, "working_dir")
  
      @working_dir.setter
      def working_dir(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "working_dir", value)
  
  
  class Container(pulumi.CustomResource):
      @overload
      def __init__(__self__,
                   resource_name: str,
                   opts: Optional[pulumi.ResourceOptions] = None,
                   attach: Optional[pulumi.Input[bool]] = None,
                   capabilities: Optional[pulumi.Input[pulumi.InputType['ContainerCapabilitiesArgs']]] = None,
                   command: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   cpu_set: Optional[pulumi.Input[str]] = None,
                   cpu_shares: Optional[pulumi.Input[int]] = None,
                   destroy_grace_seconds: Optional[pulumi.Input[int]] = None,
                   devices: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerDeviceArgs']]]]] = None,
                   dns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   dns_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   domainname: Optional[pulumi.Input[str]] = None,
                   entrypoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   envs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   group_adds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   healthcheck: Optional[pulumi.Input[pulumi.InputType['ContainerHealthcheckArgs']]] = None,
                   hostname: Optional[pulumi.Input[str]] = None,
                   hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerHostArgs']]]]] = None,
                   image: Optional[pulumi.Input[str]] = None,
                   init: Optional[pulumi.Input[bool]] = None,
                   ipc_mode: Optional[pulumi.Input[str]] = None,
                   labels: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerLabelArgs']]]]] = None,
                   links: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   log_driver: Optional[pulumi.Input[str]] = None,
                   log_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   logs: Optional[pulumi.Input[bool]] = None,
                   max_retry_count: Optional[pulumi.Input[int]] = None,
                   memory: Optional[pulumi.Input[int]] = None,
                   memory_swap: Optional[pulumi.Input[int]] = None,
                   mounts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerMountArgs']]]]] = None,
                   must_run: Optional[pulumi.Input[bool]] = None,
                   name: Optional[pulumi.Input[str]] = None,
                   network_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   network_mode: Optional[pulumi.Input[str]] = None,
                   networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   networks_advanced: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerNetworksAdvancedArgs']]]]] = None,
                   pid_mode: Optional[pulumi.Input[str]] = None,
                   ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]]] = None,
                   privileged: Optional[pulumi.Input[bool]] = None,
                   publish_all_ports: Optional[pulumi.Input[bool]] = None,
                   read_only: Optional[pulumi.Input[bool]] = None,
                   remove_volumes: Optional[pulumi.Input[bool]] = None,
                   restart: Optional[pulumi.Input[str]] = None,
                   rm: Optional[pulumi.Input[bool]] = None,
                   security_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   shm_size: Optional[pulumi.Input[int]] = None,
                   start: Optional[pulumi.Input[bool]] = None,
                   stdin_open: Optional[pulumi.Input[bool]] = None,
                   storage_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   sysctls: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   tmpfs: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   tty: Optional[pulumi.Input[bool]] = None,
                   ulimits: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUlimitArgs']]]]] = None,
                   uploads: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUploadArgs']]]]] = None,
                   user: Optional[pulumi.Input[str]] = None,
                   userns_mode: Optional[pulumi.Input[str]] = None,
                   volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerVolumeArgs']]]]] = None,
                   working_dir: Optional[pulumi.Input[str]] = None,
                   __props__=None):
          """
          ## Import
  
          ### Example Assuming you created a `container` as follows #!/bin/bash docker run --name foo -p8080:80 -d nginx
  
          # prints the container ID
  
          9a550c0f0163d39d77222d3efd58701b625d47676c25c686c95b5b92d1cba6fd you provide the definition for the resource as follows terraform resource "docker_container" "foo" {
  
           name
  
          = "foo"
  
           image = "nginx"
  
           ports {
  
           internal = "80"
  
           external = "8080"
  
           } } then the import command is as follows #!/bin/bash
  
          ```sh
           $ pulumi import docker:index/container:Container foo 9a550c0f0163d39d77222d3efd58701b625d47676c25c686c95b5b92d1cba6fd
          ```
  
          :param str resource_name: The name of the resource.
          :param pulumi.ResourceOptions opts: Options for the resource.
          :param pulumi.Input[bool] attach: If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`.
          :param pulumi.Input[pulumi.InputType['ContainerCapabilitiesArgs']] capabilities: Add or drop certrain linux capabilities.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] command: The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be
                 `["/usr/bin/myprogram","-","baz.con"]`.
          :param pulumi.Input[str] cpu_set: A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`.
          :param pulumi.Input[int] cpu_shares: CPU shares (relative weight) for the container.
          :param pulumi.Input[int] destroy_grace_seconds: If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on
                 successful stop.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerDeviceArgs']]]] devices: Bind devices to the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns: DNS servers to use.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_opts: DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_searches: DNS search domains that are used when bare unqualified hostnames are used inside of the container.
          :param pulumi.Input[str] domainname: Domain name of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] entrypoints: The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an
                 executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be
                 `"/usr/bin/myprogra"]`.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] envs: Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0`
          :param pulumi.Input[Sequence[pulumi.Input[str]]] group_adds: Additional groups for the container user
          :param pulumi.Input[pulumi.InputType['ContainerHealthcheckArgs']] healthcheck: A test to perform to check that the container is healthy
          :param pulumi.Input[str] hostname: Hostname of the container.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerHostArgs']]]] hosts: Additional hosts to add to the container.
          :param pulumi.Input[str] image: The ID of the image to back this container. The easiest way to get this value is to use the `docker_image` resource as
                 is shown in the example.
          :param pulumi.Input[bool] init: Configured whether an init process should be injected for this container. If unset this will default to the `dockerd`
                 defaults.
          :param pulumi.Input[str] ipc_mode: IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:<name|id>` or
                 `host`.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerLabelArgs']]]] labels: User-defined key/value metadata
          :param pulumi.Input[Sequence[pulumi.Input[str]]] links: Set of links for link based connectivity between containers that are running on the same host.
          :param pulumi.Input[str] log_driver: The logging driver to use for the container. Defaults to `json-file`.
          :param pulumi.Input[Mapping[str, Any]] log_opts: Key/value pairs to use as options for the logging driver.
          :param pulumi.Input[bool] logs: Save the container logs (`attach` must be enabled). Defaults to `false`.
          :param pulumi.Input[int] max_retry_count: The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'.
          :param pulumi.Input[int] memory: The memory limit for the container in MBs.
          :param pulumi.Input[int] memory_swap: The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `terraform
                 apply` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerMountArgs']]]] mounts: Specification for mounts to be added to containers created as part of the service.
          :param pulumi.Input[bool] must_run: If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform
                 assumes it is successful. Defaults to `true`.
          :param pulumi.Input[str] name: The name of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] network_aliases: Set an alias for the container in all specified networks
          :param pulumi.Input[str] network_mode: Network mode of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] networks: ID of the networks in which the container is.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerNetworksAdvancedArgs']]]] networks_advanced: The networks the container is attached to
          :param pulumi.Input[str] pid_mode: he PID (Process) Namespace mode for the container. Either `container:<name|id>` or `host`.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]] ports: Publish a container's port(s) to the host.
          :param pulumi.Input[bool] privileged: If `true`, the container runs in privileged mode.
          :param pulumi.Input[bool] publish_all_ports: Publish all ports of the container.
          :param pulumi.Input[bool] read_only: If `true`, the container will be started as readonly. Defaults to `false`.
          :param pulumi.Input[bool] remove_volumes: If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`.
          :param pulumi.Input[str] restart: The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`.
          :param pulumi.Input[bool] rm: If `true`, then the container will be automatically removed after his execution. Terraform won't check this container
                 after creation. Defaults to `false`.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] security_opts: List of string values to customize labels for MLS systems, such as SELinux. See
                 https://docs.docker.com/engine/reference/run/#security-configuration.
          :param pulumi.Input[int] shm_size: Size of `/dev/shm` in MBs.
          :param pulumi.Input[bool] start: If `true`, then the Docker container will be started after creation. If `false`, then the container is only created.
                 Defaults to `true`.
          :param pulumi.Input[bool] stdin_open: If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`.
          :param pulumi.Input[Mapping[str, Any]] storage_opts: Key/value pairs for the storage driver options, e.g. `size`: `120G`
          :param pulumi.Input[Mapping[str, Any]] sysctls: A map of kernel parameters (sysctls) to set in the container.
          :param pulumi.Input[Mapping[str, Any]] tmpfs: A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options.
          :param pulumi.Input[bool] tty: If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUlimitArgs']]]] ulimits: Ulimit options to add.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUploadArgs']]]] uploads: Specifies files to upload to the container before starting it. Only one of `content` or `content_base64` can be set and
                 at least one of them has to be set.
          :param pulumi.Input[str] user: User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by
                 name.
          :param pulumi.Input[str] userns_mode: Sets the usernamespace mode for the container when usernamespace remapping option is enabled.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerVolumeArgs']]]] volumes: Spec for mounting volumes in the container.
          :param pulumi.Input[str] working_dir: The working directory for commands to run in.
          """
          ...
      @overload
      def __init__(__self__,
                   resource_name: str,
                   args: ContainerArgs,
                   opts: Optional[pulumi.ResourceOptions] = None):
          """
          ## Import
  
          ### Example Assuming you created a `container` as follows #!/bin/bash docker run --name foo -p8080:80 -d nginx
  
          # prints the container ID
  
          9a550c0f0163d39d77222d3efd58701b625d47676c25c686c95b5b92d1cba6fd you provide the definition for the resource as follows terraform resource "docker_container" "foo" {
  
           name
  
          = "foo"
  
           image = "nginx"
  
           ports {
  
           internal = "80"
  
           external = "8080"
  
           } } then the import command is as follows #!/bin/bash
  
          ```sh
           $ pulumi import docker:index/container:Container foo 9a550c0f0163d39d77222d3efd58701b625d47676c25c686c95b5b92d1cba6fd
          ```
  
          :param str resource_name: The name of the resource.
          :param ContainerArgs args: The arguments to use to populate this resource's properties.
          :param pulumi.ResourceOptions opts: Options for the resource.
          """
          ...
      def __init__(__self__, resource_name: str, *args, **kwargs):
          resource_args, opts = _utilities.get_resource_args_opts(ContainerArgs, pulumi.ResourceOptions, *args, **kwargs)
          if resource_args is not None:
              __self__._internal_init(resource_name, opts, **resource_args.__dict__)
          else:
              __self__._internal_init(resource_name, *args, **kwargs)
  
      def _internal_init(__self__,
                   resource_name: str,
                   opts: Optional[pulumi.ResourceOptions] = None,
                   attach: Optional[pulumi.Input[bool]] = None,
                   capabilities: Optional[pulumi.Input[pulumi.InputType['ContainerCapabilitiesArgs']]] = None,
                   command: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   cpu_set: Optional[pulumi.Input[str]] = None,
                   cpu_shares: Optional[pulumi.Input[int]] = None,
                   destroy_grace_seconds: Optional[pulumi.Input[int]] = None,
                   devices: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerDeviceArgs']]]]] = None,
                   dns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   dns_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   domainname: Optional[pulumi.Input[str]] = None,
                   entrypoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   envs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   group_adds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   healthcheck: Optional[pulumi.Input[pulumi.InputType['ContainerHealthcheckArgs']]] = None,
                   hostname: Optional[pulumi.Input[str]] = None,
                   hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerHostArgs']]]]] = None,
                   image: Optional[pulumi.Input[str]] = None,
                   init: Optional[pulumi.Input[bool]] = None,
                   ipc_mode: Optional[pulumi.Input[str]] = None,
                   labels: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerLabelArgs']]]]] = None,
                   links: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   log_driver: Optional[pulumi.Input[str]] = None,
                   log_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   logs: Optional[pulumi.Input[bool]] = None,
                   max_retry_count: Optional[pulumi.Input[int]] = None,
                   memory: Optional[pulumi.Input[int]] = None,
                   memory_swap: Optional[pulumi.Input[int]] = None,
                   mounts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerMountArgs']]]]] = None,
                   must_run: Optional[pulumi.Input[bool]] = None,
                   name: Optional[pulumi.Input[str]] = None,
                   network_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   network_mode: Optional[pulumi.Input[str]] = None,
                   networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   networks_advanced: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerNetworksAdvancedArgs']]]]] = None,
                   pid_mode: Optional[pulumi.Input[str]] = None,
                   ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]]] = None,
                   privileged: Optional[pulumi.Input[bool]] = None,
                   publish_all_ports: Optional[pulumi.Input[bool]] = None,
                   read_only: Optional[pulumi.Input[bool]] = None,
                   remove_volumes: Optional[pulumi.Input[bool]] = None,
                   restart: Optional[pulumi.Input[str]] = None,
                   rm: Optional[pulumi.Input[bool]] = None,
                   security_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   shm_size: Optional[pulumi.Input[int]] = None,
                   start: Optional[pulumi.Input[bool]] = None,
                   stdin_open: Optional[pulumi.Input[bool]] = None,
                   storage_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   sysctls: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   tmpfs: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                   tty: Optional[pulumi.Input[bool]] = None,
                   ulimits: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUlimitArgs']]]]] = None,
                   uploads: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUploadArgs']]]]] = None,
                   user: Optional[pulumi.Input[str]] = None,
                   userns_mode: Optional[pulumi.Input[str]] = None,
                   volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerVolumeArgs']]]]] = None,
                   working_dir: Optional[pulumi.Input[str]] = None,
                   __props__=None):
          if opts is None:
              opts = pulumi.ResourceOptions()
          if not isinstance(opts, pulumi.ResourceOptions):
              raise TypeError('Expected resource options to be a ResourceOptions instance')
          if opts.version is None:
              opts.version = _utilities.get_version()
          if opts.id is None:
              if __props__ is not None:
                  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
              __props__ = ContainerArgs.__new__(ContainerArgs)
  
              __props__.__dict__["attach"] = attach
              __props__.__dict__["capabilities"] = capabilities
              __props__.__dict__["command"] = command
              __props__.__dict__["cpu_set"] = cpu_set
              __props__.__dict__["cpu_shares"] = cpu_shares
              __props__.__dict__["destroy_grace_seconds"] = destroy_grace_seconds
              __props__.__dict__["devices"] = devices
              __props__.__dict__["dns"] = dns
              __props__.__dict__["dns_opts"] = dns_opts
              __props__.__dict__["dns_searches"] = dns_searches
              __props__.__dict__["domainname"] = domainname
              __props__.__dict__["entrypoints"] = entrypoints
              __props__.__dict__["envs"] = envs
              __props__.__dict__["group_adds"] = group_adds
              __props__.__dict__["healthcheck"] = healthcheck
              __props__.__dict__["hostname"] = hostname
              __props__.__dict__["hosts"] = hosts
              if image is None and not opts.urn:
                  raise TypeError("Missing required property 'image'")
              __props__.__dict__["image"] = image
              __props__.__dict__["init"] = init
              __props__.__dict__["ipc_mode"] = ipc_mode
              __props__.__dict__["labels"] = labels
              if links is not None and not opts.urn:
                  warnings.warn("""The --link flag is a legacy feature of Docker. It may eventually be removed.""", DeprecationWarning)
                  pulumi.log.warn("""links is deprecated: The --link flag is a legacy feature of Docker. It may eventually be removed.""")
              __props__.__dict__["links"] = links
              __props__.__dict__["log_driver"] = log_driver
              __props__.__dict__["log_opts"] = log_opts
              __props__.__dict__["logs"] = logs
              __props__.__dict__["max_retry_count"] = max_retry_count
              __props__.__dict__["memory"] = memory
              __props__.__dict__["memory_swap"] = memory_swap
              __props__.__dict__["mounts"] = mounts
              __props__.__dict__["must_run"] = must_run
              __props__.__dict__["name"] = name
              if network_aliases is not None and not opts.urn:
                  warnings.warn("""Use networks_advanced instead. Will be removed in v3.0.0""", DeprecationWarning)
                  pulumi.log.warn("""network_aliases is deprecated: Use networks_advanced instead. Will be removed in v3.0.0""")
              __props__.__dict__["network_aliases"] = network_aliases
              __props__.__dict__["network_mode"] = network_mode
              if networks is not None and not opts.urn:
                  warnings.warn("""Use networks_advanced instead. Will be removed in v3.0.0""", DeprecationWarning)
                  pulumi.log.warn("""networks is deprecated: Use networks_advanced instead. Will be removed in v3.0.0""")
              __props__.__dict__["networks"] = networks
              __props__.__dict__["networks_advanced"] = networks_advanced
              __props__.__dict__["pid_mode"] = pid_mode
              __props__.__dict__["ports"] = ports
              __props__.__dict__["privileged"] = privileged
              __props__.__dict__["publish_all_ports"] = publish_all_ports
              __props__.__dict__["read_only"] = read_only
              __props__.__dict__["remove_volumes"] = remove_volumes
              __props__.__dict__["restart"] = restart
              __props__.__dict__["rm"] = rm
              __props__.__dict__["security_opts"] = security_opts
              __props__.__dict__["shm_size"] = shm_size
              __props__.__dict__["start"] = start
              __props__.__dict__["stdin_open"] = stdin_open
              __props__.__dict__["storage_opts"] = storage_opts
              __props__.__dict__["sysctls"] = sysctls
              __props__.__dict__["tmpfs"] = tmpfs
              __props__.__dict__["tty"] = tty
              __props__.__dict__["ulimits"] = ulimits
              __props__.__dict__["uploads"] = uploads
              __props__.__dict__["user"] = user
              __props__.__dict__["userns_mode"] = userns_mode
              __props__.__dict__["volumes"] = volumes
              __props__.__dict__["working_dir"] = working_dir
              __props__.__dict__["bridge"] = None
              __props__.__dict__["container_logs"] = None
              __props__.__dict__["exit_code"] = None
              __props__.__dict__["gateway"] = None
              __props__.__dict__["ip_address"] = None
              __props__.__dict__["ip_prefix_length"] = None
              __props__.__dict__["network_datas"] = None
          super(Container, __self__).__init__(
              'docker:index/container:Container',
              resource_name,
              __props__,
              opts)
  
      @staticmethod
      def get(resource_name: str,
              id: pulumi.Input[str],
              opts: Optional[pulumi.ResourceOptions] = None,
              attach: Optional[pulumi.Input[bool]] = None,
              bridge: Optional[pulumi.Input[str]] = None,
              capabilities: Optional[pulumi.Input[pulumi.InputType['ContainerCapabilitiesArgs']]] = None,
              command: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              container_logs: Optional[pulumi.Input[str]] = None,
              cpu_set: Optional[pulumi.Input[str]] = None,
              cpu_shares: Optional[pulumi.Input[int]] = None,
              destroy_grace_seconds: Optional[pulumi.Input[int]] = None,
              devices: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerDeviceArgs']]]]] = None,
              dns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              dns_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              dns_searches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              domainname: Optional[pulumi.Input[str]] = None,
              entrypoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              envs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              exit_code: Optional[pulumi.Input[int]] = None,
              gateway: Optional[pulumi.Input[str]] = None,
              group_adds: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              healthcheck: Optional[pulumi.Input[pulumi.InputType['ContainerHealthcheckArgs']]] = None,
              hostname: Optional[pulumi.Input[str]] = None,
              hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerHostArgs']]]]] = None,
              image: Optional[pulumi.Input[str]] = None,
              init: Optional[pulumi.Input[bool]] = None,
              ip_address: Optional[pulumi.Input[str]] = None,
              ip_prefix_length: Optional[pulumi.Input[int]] = None,
              ipc_mode: Optional[pulumi.Input[str]] = None,
              labels: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerLabelArgs']]]]] = None,
              links: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              log_driver: Optional[pulumi.Input[str]] = None,
              log_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
              logs: Optional[pulumi.Input[bool]] = None,
              max_retry_count: Optional[pulumi.Input[int]] = None,
              memory: Optional[pulumi.Input[int]] = None,
              memory_swap: Optional[pulumi.Input[int]] = None,
              mounts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerMountArgs']]]]] = None,
              must_run: Optional[pulumi.Input[bool]] = None,
              name: Optional[pulumi.Input[str]] = None,
              network_aliases: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              network_datas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerNetworkDataArgs']]]]] = None,
              network_mode: Optional[pulumi.Input[str]] = None,
              networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              networks_advanced: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerNetworksAdvancedArgs']]]]] = None,
              pid_mode: Optional[pulumi.Input[str]] = None,
              ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]]] = None,
              privileged: Optional[pulumi.Input[bool]] = None,
              publish_all_ports: Optional[pulumi.Input[bool]] = None,
              read_only: Optional[pulumi.Input[bool]] = None,
              remove_volumes: Optional[pulumi.Input[bool]] = None,
              restart: Optional[pulumi.Input[str]] = None,
              rm: Optional[pulumi.Input[bool]] = None,
              security_opts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              shm_size: Optional[pulumi.Input[int]] = None,
              start: Optional[pulumi.Input[bool]] = None,
              stdin_open: Optional[pulumi.Input[bool]] = None,
              storage_opts: Optional[pulumi.Input[Mapping[str, Any]]] = None,
              sysctls: Optional[pulumi.Input[Mapping[str, Any]]] = None,
              tmpfs: Optional[pulumi.Input[Mapping[str, Any]]] = None,
              tty: Optional[pulumi.Input[bool]] = None,
              ulimits: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUlimitArgs']]]]] = None,
              uploads: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUploadArgs']]]]] = None,
              user: Optional[pulumi.Input[str]] = None,
              userns_mode: Optional[pulumi.Input[str]] = None,
              volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerVolumeArgs']]]]] = None,
              working_dir: Optional[pulumi.Input[str]] = None) -> 'Container':
          """
          Get an existing Container resource's state with the given name, id, and optional extra
          properties used to qualify the lookup.
  
          :param str resource_name: The unique name of the resulting resource.
          :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
          :param pulumi.ResourceOptions opts: Options for the resource.
          :param pulumi.Input[bool] attach: If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`.
          :param pulumi.Input[str] bridge: The network bridge of the container as read from its NetworkSettings.
          :param pulumi.Input[pulumi.InputType['ContainerCapabilitiesArgs']] capabilities: Add or drop certrain linux capabilities.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] command: The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be
                 `["/usr/bin/myprogram","-","baz.con"]`.
          :param pulumi.Input[str] container_logs: The logs of the container if its execution is done (`attach` must be disabled).
          :param pulumi.Input[str] cpu_set: A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`.
          :param pulumi.Input[int] cpu_shares: CPU shares (relative weight) for the container.
          :param pulumi.Input[int] destroy_grace_seconds: If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on
                 successful stop.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerDeviceArgs']]]] devices: Bind devices to the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns: DNS servers to use.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_opts: DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_searches: DNS search domains that are used when bare unqualified hostnames are used inside of the container.
          :param pulumi.Input[str] domainname: Domain name of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] entrypoints: The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an
                 executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be
                 `"/usr/bin/myprogra"]`.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] envs: Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0`
          :param pulumi.Input[int] exit_code: The exit code of the container if its execution is done (`must_run` must be disabled).
          :param pulumi.Input[str] gateway: The network gateway of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] group_adds: Additional groups for the container user
          :param pulumi.Input[pulumi.InputType['ContainerHealthcheckArgs']] healthcheck: A test to perform to check that the container is healthy
          :param pulumi.Input[str] hostname: Hostname of the container.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerHostArgs']]]] hosts: Additional hosts to add to the container.
          :param pulumi.Input[str] image: The ID of the image to back this container. The easiest way to get this value is to use the `docker_image` resource as
                 is shown in the example.
          :param pulumi.Input[bool] init: Configured whether an init process should be injected for this container. If unset this will default to the `dockerd`
                 defaults.
          :param pulumi.Input[str] ip_address: The IP address of the container.
          :param pulumi.Input[int] ip_prefix_length: The IP prefix length of the container.
          :param pulumi.Input[str] ipc_mode: IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:<name|id>` or
                 `host`.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerLabelArgs']]]] labels: User-defined key/value metadata
          :param pulumi.Input[Sequence[pulumi.Input[str]]] links: Set of links for link based connectivity between containers that are running on the same host.
          :param pulumi.Input[str] log_driver: The logging driver to use for the container. Defaults to `json-file`.
          :param pulumi.Input[Mapping[str, Any]] log_opts: Key/value pairs to use as options for the logging driver.
          :param pulumi.Input[bool] logs: Save the container logs (`attach` must be enabled). Defaults to `false`.
          :param pulumi.Input[int] max_retry_count: The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'.
          :param pulumi.Input[int] memory: The memory limit for the container in MBs.
          :param pulumi.Input[int] memory_swap: The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `terraform
                 apply` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerMountArgs']]]] mounts: Specification for mounts to be added to containers created as part of the service.
          :param pulumi.Input[bool] must_run: If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform
                 assumes it is successful. Defaults to `true`.
          :param pulumi.Input[str] name: The name of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] network_aliases: Set an alias for the container in all specified networks
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerNetworkDataArgs']]]] network_datas: The data of the networks the container is connected to.
          :param pulumi.Input[str] network_mode: Network mode of the container.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] networks: ID of the networks in which the container is.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerNetworksAdvancedArgs']]]] networks_advanced: The networks the container is attached to
          :param pulumi.Input[str] pid_mode: he PID (Process) Namespace mode for the container. Either `container:<name|id>` or `host`.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerPortArgs']]]] ports: Publish a container's port(s) to the host.
          :param pulumi.Input[bool] privileged: If `true`, the container runs in privileged mode.
          :param pulumi.Input[bool] publish_all_ports: Publish all ports of the container.
          :param pulumi.Input[bool] read_only: If `true`, the container will be started as readonly. Defaults to `false`.
          :param pulumi.Input[bool] remove_volumes: If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`.
          :param pulumi.Input[str] restart: The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`.
          :param pulumi.Input[bool] rm: If `true`, then the container will be automatically removed after his execution. Terraform won't check this container
                 after creation. Defaults to `false`.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] security_opts: List of string values to customize labels for MLS systems, such as SELinux. See
                 https://docs.docker.com/engine/reference/run/#security-configuration.
          :param pulumi.Input[int] shm_size: Size of `/dev/shm` in MBs.
          :param pulumi.Input[bool] start: If `true`, then the Docker container will be started after creation. If `false`, then the container is only created.
                 Defaults to `true`.
          :param pulumi.Input[bool] stdin_open: If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`.
          :param pulumi.Input[Mapping[str, Any]] storage_opts: Key/value pairs for the storage driver options, e.g. `size`: `120G`
          :param pulumi.Input[Mapping[str, Any]] sysctls: A map of kernel parameters (sysctls) to set in the container.
          :param pulumi.Input[Mapping[str, Any]] tmpfs: A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options.
          :param pulumi.Input[bool] tty: If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUlimitArgs']]]] ulimits: Ulimit options to add.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerUploadArgs']]]] uploads: Specifies files to upload to the container before starting it. Only one of `content` or `content_base64` can be set and
                 at least one of them has to be set.
          :param pulumi.Input[str] user: User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by
                 name.
          :param pulumi.Input[str] userns_mode: Sets the usernamespace mode for the container when usernamespace remapping option is enabled.
          :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerVolumeArgs']]]] volumes: Spec for mounting volumes in the container.
          :param pulumi.Input[str] working_dir: The working directory for commands to run in.
          """
          opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
  
          __props__ = _ContainerState.__new__(_ContainerState)
  
          __props__.__dict__["attach"] = attach
          __props__.__dict__["bridge"] = bridge
          __props__.__dict__["capabilities"] = capabilities
          __props__.__dict__["command"] = command
          __props__.__dict__["container_logs"] = container_logs
          __props__.__dict__["cpu_set"] = cpu_set
          __props__.__dict__["cpu_shares"] = cpu_shares
          __props__.__dict__["destroy_grace_seconds"] = destroy_grace_seconds
          __props__.__dict__["devices"] = devices
          __props__.__dict__["dns"] = dns
          __props__.__dict__["dns_opts"] = dns_opts
          __props__.__dict__["dns_searches"] = dns_searches
          __props__.__dict__["domainname"] = domainname
          __props__.__dict__["entrypoints"] = entrypoints
          __props__.__dict__["envs"] = envs
          __props__.__dict__["exit_code"] = exit_code
          __props__.__dict__["gateway"] = gateway
          __props__.__dict__["group_adds"] = group_adds
          __props__.__dict__["healthcheck"] = healthcheck
          __props__.__dict__["hostname"] = hostname
          __props__.__dict__["hosts"] = hosts
          __props__.__dict__["image"] = image
          __props__.__dict__["init"] = init
          __props__.__dict__["ip_address"] = ip_address
          __props__.__dict__["ip_prefix_length"] = ip_prefix_length
          __props__.__dict__["ipc_mode"] = ipc_mode
          __props__.__dict__["labels"] = labels
          __props__.__dict__["links"] = links
          __props__.__dict__["log_driver"] = log_driver
          __props__.__dict__["log_opts"] = log_opts
          __props__.__dict__["logs"] = logs
          __props__.__dict__["max_retry_count"] = max_retry_count
          __props__.__dict__["memory"] = memory
          __props__.__dict__["memory_swap"] = memory_swap
          __props__.__dict__["mounts"] = mounts
          __props__.__dict__["must_run"] = must_run
          __props__.__dict__["name"] = name
          __props__.__dict__["network_aliases"] = network_aliases
          __props__.__dict__["network_datas"] = network_datas
          __props__.__dict__["network_mode"] = network_mode
          __props__.__dict__["networks"] = networks
          __props__.__dict__["networks_advanced"] = networks_advanced
          __props__.__dict__["pid_mode"] = pid_mode
          __props__.__dict__["ports"] = ports
          __props__.__dict__["privileged"] = privileged
          __props__.__dict__["publish_all_ports"] = publish_all_ports
          __props__.__dict__["read_only"] = read_only
          __props__.__dict__["remove_volumes"] = remove_volumes
          __props__.__dict__["restart"] = restart
          __props__.__dict__["rm"] = rm
          __props__.__dict__["security_opts"] = security_opts
          __props__.__dict__["shm_size"] = shm_size
          __props__.__dict__["start"] = start
          __props__.__dict__["stdin_open"] = stdin_open
          __props__.__dict__["storage_opts"] = storage_opts
          __props__.__dict__["sysctls"] = sysctls
          __props__.__dict__["tmpfs"] = tmpfs
          __props__.__dict__["tty"] = tty
          __props__.__dict__["ulimits"] = ulimits
          __props__.__dict__["uploads"] = uploads
          __props__.__dict__["user"] = user
          __props__.__dict__["userns_mode"] = userns_mode
          __props__.__dict__["volumes"] = volumes
          __props__.__dict__["working_dir"] = working_dir
          return Container(resource_name, opts=opts, __props__=__props__)
  
      @property
      @pulumi.getter
      def attach(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`.
          """
          return pulumi.get(self, "attach")
  
      @property
      @pulumi.getter
      def bridge(self) -> pulumi.Output[str]:
          """
          The network bridge of the container as read from its NetworkSettings.
          """
          return pulumi.get(self, "bridge")
  
      @property
      @pulumi.getter
      def capabilities(self) -> pulumi.Output[Optional['outputs.ContainerCapabilities']]:
          """
          Add or drop certrain linux capabilities.
          """
          return pulumi.get(self, "capabilities")
  
      @property
      @pulumi.getter
      def command(self) -> pulumi.Output[Sequence[str]]:
          """
          The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be
          `["/usr/bin/myprogram","-","baz.con"]`.
          """
          return pulumi.get(self, "command")
  
      @property
      @pulumi.getter(name="containerLogs")
      def container_logs(self) -> pulumi.Output[str]:
          """
          The logs of the container if its execution is done (`attach` must be disabled).
          """
          return pulumi.get(self, "container_logs")
  
      @property
      @pulumi.getter(name="cpuSet")
      def cpu_set(self) -> pulumi.Output[Optional[str]]:
          """
          A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`.
          """
          return pulumi.get(self, "cpu_set")
  
      @property
      @pulumi.getter(name="cpuShares")
      def cpu_shares(self) -> pulumi.Output[Optional[int]]:
          """
          CPU shares (relative weight) for the container.
          """
          return pulumi.get(self, "cpu_shares")
  
      @property
      @pulumi.getter(name="destroyGraceSeconds")
      def destroy_grace_seconds(self) -> pulumi.Output[Optional[int]]:
          """
          If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on
          successful stop.
          """
          return pulumi.get(self, "destroy_grace_seconds")
  
      @property
      @pulumi.getter
      def devices(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerDevice']]]:
          """
          Bind devices to the container.
          """
          return pulumi.get(self, "devices")
  
      @property
      @pulumi.getter
      def dns(self) -> pulumi.Output[Optional[Sequence[str]]]:
          """
          DNS servers to use.
          """
          return pulumi.get(self, "dns")
  
      @property
      @pulumi.getter(name="dnsOpts")
      def dns_opts(self) -> pulumi.Output[Optional[Sequence[str]]]:
          """
          DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options.
          """
          return pulumi.get(self, "dns_opts")
  
      @property
      @pulumi.getter(name="dnsSearches")
      def dns_searches(self) -> pulumi.Output[Optional[Sequence[str]]]:
          """
          DNS search domains that are used when bare unqualified hostnames are used inside of the container.
          """
          return pulumi.get(self, "dns_searches")
  
      @property
      @pulumi.getter
      def domainname(self) -> pulumi.Output[Optional[str]]:
          """
          Domain name of the container.
          """
          return pulumi.get(self, "domainname")
  
      @property
      @pulumi.getter
      def entrypoints(self) -> pulumi.Output[Sequence[str]]:
          """
          The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an
          executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be
          `"/usr/bin/myprogra"]`.
          """
          return pulumi.get(self, "entrypoints")
  
      @property
      @pulumi.getter
      def envs(self) -> pulumi.Output[Sequence[str]]:
          """
          Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0`
          """
          return pulumi.get(self, "envs")
  
      @property
      @pulumi.getter(name="exitCode")
      def exit_code(self) -> pulumi.Output[int]:
          """
          The exit code of the container if its execution is done (`must_run` must be disabled).
          """
          return pulumi.get(self, "exit_code")
  
      @property
      @pulumi.getter
      def gateway(self) -> pulumi.Output[str]:
          """
          The network gateway of the container.
          """
          return pulumi.get(self, "gateway")
  
      @property
      @pulumi.getter(name="groupAdds")
      def group_adds(self) -> pulumi.Output[Optional[Sequence[str]]]:
          """
          Additional groups for the container user
          """
          return pulumi.get(self, "group_adds")
  
      @property
      @pulumi.getter
      def healthcheck(self) -> pulumi.Output['outputs.ContainerHealthcheck']:
          """
          A test to perform to check that the container is healthy
          """
          return pulumi.get(self, "healthcheck")
  
      @property
      @pulumi.getter
      def hostname(self) -> pulumi.Output[str]:
          """
          Hostname of the container.
          """
          return pulumi.get(self, "hostname")
  
      @property
      @pulumi.getter
      def hosts(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerHost']]]:
          """
          Additional hosts to add to the container.
          """
          return pulumi.get(self, "hosts")
  
      @property
      @pulumi.getter
      def image(self) -> pulumi.Output[str]:
          """
          The ID of the image to back this container. The easiest way to get this value is to use the `docker_image` resource as
          is shown in the example.
          """
          return pulumi.get(self, "image")
  
      @property
      @pulumi.getter
      def init(self) -> pulumi.Output[bool]:
          """
          Configured whether an init process should be injected for this container. If unset this will default to the `dockerd`
          defaults.
          """
          return pulumi.get(self, "init")
  
      @property
      @pulumi.getter(name="ipAddress")
      def ip_address(self) -> pulumi.Output[str]:
          """
          The IP address of the container.
          """
          return pulumi.get(self, "ip_address")
  
      @property
      @pulumi.getter(name="ipPrefixLength")
      def ip_prefix_length(self) -> pulumi.Output[int]:
          """
          The IP prefix length of the container.
          """
          return pulumi.get(self, "ip_prefix_length")
  
      @property
      @pulumi.getter(name="ipcMode")
      def ipc_mode(self) -> pulumi.Output[str]:
          """
          IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:<name|id>` or
          `host`.
          """
          return pulumi.get(self, "ipc_mode")
  
      @property
      @pulumi.getter
      def labels(self) -> pulumi.Output[Sequence['outputs.ContainerLabel']]:
          """
          User-defined key/value metadata
          """
          return pulumi.get(self, "labels")
  
      @property
      @pulumi.getter
      def links(self) -> pulumi.Output[Optional[Sequence[str]]]:
          """
          Set of links for link based connectivity between containers that are running on the same host.
          """
          return pulumi.get(self, "links")
  
      @property
      @pulumi.getter(name="logDriver")
      def log_driver(self) -> pulumi.Output[Optional[str]]:
          """
          The logging driver to use for the container. Defaults to `json-file`.
          """
          return pulumi.get(self, "log_driver")
  
      @property
      @pulumi.getter(name="logOpts")
      def log_opts(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
          """
          Key/value pairs to use as options for the logging driver.
          """
          return pulumi.get(self, "log_opts")
  
      @property
      @pulumi.getter
      def logs(self) -> pulumi.Output[Optional[bool]]:
          """
          Save the container logs (`attach` must be enabled). Defaults to `false`.
          """
          return pulumi.get(self, "logs")
  
      @property
      @pulumi.getter(name="maxRetryCount")
      def max_retry_count(self) -> pulumi.Output[Optional[int]]:
          """
          The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'.
          """
          return pulumi.get(self, "max_retry_count")
  
      @property
      @pulumi.getter
      def memory(self) -> pulumi.Output[Optional[int]]:
          """
          The memory limit for the container in MBs.
          """
          return pulumi.get(self, "memory")
  
      @property
      @pulumi.getter(name="memorySwap")
      def memory_swap(self) -> pulumi.Output[Optional[int]]:
          """
          The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `terraform
          apply` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation.
          """
          return pulumi.get(self, "memory_swap")
  
      @property
      @pulumi.getter
      def mounts(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerMount']]]:
          """
          Specification for mounts to be added to containers created as part of the service.
          """
          return pulumi.get(self, "mounts")
  
      @property
      @pulumi.getter(name="mustRun")
      def must_run(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform
          assumes it is successful. Defaults to `true`.
          """
          return pulumi.get(self, "must_run")
  
      @property
      @pulumi.getter
      def name(self) -> pulumi.Output[str]:
          """
          The name of the container.
          """
          return pulumi.get(self, "name")
  
      @property
      @pulumi.getter(name="networkAliases")
      def network_aliases(self) -> pulumi.Output[Optional[Sequence[str]]]:
          """
          Set an alias for the container in all specified networks
          """
          return pulumi.get(self, "network_aliases")
  
      @property
      @pulumi.getter(name="networkDatas")
      def network_datas(self) -> pulumi.Output[Sequence['outputs.ContainerNetworkData']]:
          """
          The data of the networks the container is connected to.
          """
          return pulumi.get(self, "network_datas")
  
      @property
      @pulumi.getter(name="networkMode")
      def network_mode(self) -> pulumi.Output[Optional[str]]:
          """
          Network mode of the container.
          """
          return pulumi.get(self, "network_mode")
  
      @property
      @pulumi.getter
      def networks(self) -> pulumi.Output[Optional[Sequence[str]]]:
          """
          ID of the networks in which the container is.
          """
          return pulumi.get(self, "networks")
  
      @property
      @pulumi.getter(name="networksAdvanced")
      def networks_advanced(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerNetworksAdvanced']]]:
          """
          The networks the container is attached to
          """
          return pulumi.get(self, "networks_advanced")
  
      @property
      @pulumi.getter(name="pidMode")
      def pid_mode(self) -> pulumi.Output[Optional[str]]:
          """
          he PID (Process) Namespace mode for the container. Either `container:<name|id>` or `host`.
          """
          return pulumi.get(self, "pid_mode")
  
      @property
      @pulumi.getter
      def ports(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerPort']]]:
          """
          Publish a container's port(s) to the host.
          """
          return pulumi.get(self, "ports")
  
      @property
      @pulumi.getter
      def privileged(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true`, the container runs in privileged mode.
          """
          return pulumi.get(self, "privileged")
  
      @property
      @pulumi.getter(name="publishAllPorts")
      def publish_all_ports(self) -> pulumi.Output[Optional[bool]]:
          """
          Publish all ports of the container.
          """
          return pulumi.get(self, "publish_all_ports")
  
      @property
      @pulumi.getter(name="readOnly")
      def read_only(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true`, the container will be started as readonly. Defaults to `false`.
          """
          return pulumi.get(self, "read_only")
  
      @property
      @pulumi.getter(name="removeVolumes")
      def remove_volumes(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`.
          """
          return pulumi.get(self, "remove_volumes")
  
      @property
      @pulumi.getter
      def restart(self) -> pulumi.Output[Optional[str]]:
          """
          The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`.
          """
          return pulumi.get(self, "restart")
  
      @property
      @pulumi.getter
      def rm(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true`, then the container will be automatically removed after his execution. Terraform won't check this container
          after creation. Defaults to `false`.
          """
          return pulumi.get(self, "rm")
  
      @property
      @pulumi.getter(name="securityOpts")
      def security_opts(self) -> pulumi.Output[Sequence[str]]:
          """
          List of string values to customize labels for MLS systems, such as SELinux. See
          https://docs.docker.com/engine/reference/run/#security-configuration.
          """
          return pulumi.get(self, "security_opts")
  
      @property
      @pulumi.getter(name="shmSize")
      def shm_size(self) -> pulumi.Output[int]:
          """
          Size of `/dev/shm` in MBs.
          """
          return pulumi.get(self, "shm_size")
  
      @property
      @pulumi.getter
      def start(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true`, then the Docker container will be started after creation. If `false`, then the container is only created.
          Defaults to `true`.
          """
          return pulumi.get(self, "start")
  
      @property
      @pulumi.getter(name="stdinOpen")
      def stdin_open(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`.
          """
          return pulumi.get(self, "stdin_open")
  
      @property
      @pulumi.getter(name="storageOpts")
      def storage_opts(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
          """
          Key/value pairs for the storage driver options, e.g. `size`: `120G`
          """
          return pulumi.get(self, "storage_opts")
  
      @property
      @pulumi.getter
      def sysctls(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
          """
          A map of kernel parameters (sysctls) to set in the container.
          """
          return pulumi.get(self, "sysctls")
  
      @property
      @pulumi.getter
      def tmpfs(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
          """
          A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options.
          """
          return pulumi.get(self, "tmpfs")
  
      @property
      @pulumi.getter
      def tty(self) -> pulumi.Output[Optional[bool]]:
          """
          If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`.
          """
          return pulumi.get(self, "tty")
  
      @property
      @pulumi.getter
      def ulimits(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerUlimit']]]:
          """
          Ulimit options to add.
          """
          return pulumi.get(self, "ulimits")
  
      @property
      @pulumi.getter
      def uploads(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerUpload']]]:
          """
          Specifies files to upload to the container before starting it. Only one of `content` or `content_base64` can be set and
          at least one of them has to be set.
          """
          return pulumi.get(self, "uploads")
  
      @property
      @pulumi.getter
      def user(self) -> pulumi.Output[Optional[str]]:
          """
          User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by
          name.
          """
          return pulumi.get(self, "user")
  
      @property
      @pulumi.getter(name="usernsMode")
      def userns_mode(self) -> pulumi.Output[Optional[str]]:
          """
          Sets the usernamespace mode for the container when usernamespace remapping option is enabled.
          """
          return pulumi.get(self, "userns_mode")
  
      @property
      @pulumi.getter
      def volumes(self) -> pulumi.Output[Optional[Sequence['outputs.ContainerVolume']]]:
          """
          Spec for mounting volumes in the container.
          """
          return pulumi.get(self, "volumes")
  
      @property
      @pulumi.getter(name="workingDir")
      def working_dir(self) -> pulumi.Output[Optional[str]]:
          """
          The working directory for commands to run in.
          """
          return pulumi.get(self, "working_dir")
  
  