// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.gcp.cloudrun.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ServiceTemplateSpecVolumeEmptyDirArgs extends com.pulumi.resources.ResourceArgs {

    public static final ServiceTemplateSpecVolumeEmptyDirArgs Empty = new ServiceTemplateSpecVolumeEmptyDirArgs();

    /**
     * The medium on which the data is stored. The default is &#34;&#34; which means to use the node&#39;s default medium. Must be an empty string (default) or Memory.
     * 
     */
    @Import(name="medium")
    private @Nullable Output<String> medium;

    /**
     * @return The medium on which the data is stored. The default is &#34;&#34; which means to use the node&#39;s default medium. Must be an empty string (default) or Memory.
     * 
     */
    public Optional<Output<String>> medium() {
        return Optional.ofNullable(this.medium);
    }

    /**
     * Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field&#39;s values are of the &#39;Quantity&#39; k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.
     * 
     * ***
     * 
     */
    @Import(name="sizeLimit")
    private @Nullable Output<String> sizeLimit;

    /**
     * @return Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field&#39;s values are of the &#39;Quantity&#39; k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.
     * 
     * ***
     * 
     */
    public Optional<Output<String>> sizeLimit() {
        return Optional.ofNullable(this.sizeLimit);
    }

    private ServiceTemplateSpecVolumeEmptyDirArgs() {}

    private ServiceTemplateSpecVolumeEmptyDirArgs(ServiceTemplateSpecVolumeEmptyDirArgs $) {
        this.medium = $.medium;
        this.sizeLimit = $.sizeLimit;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ServiceTemplateSpecVolumeEmptyDirArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ServiceTemplateSpecVolumeEmptyDirArgs $;

        public Builder() {
            $ = new ServiceTemplateSpecVolumeEmptyDirArgs();
        }

        public Builder(ServiceTemplateSpecVolumeEmptyDirArgs defaults) {
            $ = new ServiceTemplateSpecVolumeEmptyDirArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param medium The medium on which the data is stored. The default is &#34;&#34; which means to use the node&#39;s default medium. Must be an empty string (default) or Memory.
         * 
         * @return builder
         * 
         */
        public Builder medium(@Nullable Output<String> medium) {
            $.medium = medium;
            return this;
        }

        /**
         * @param medium The medium on which the data is stored. The default is &#34;&#34; which means to use the node&#39;s default medium. Must be an empty string (default) or Memory.
         * 
         * @return builder
         * 
         */
        public Builder medium(String medium) {
            return medium(Output.of(medium));
        }

        /**
         * @param sizeLimit Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field&#39;s values are of the &#39;Quantity&#39; k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.
         * 
         * ***
         * 
         * @return builder
         * 
         */
        public Builder sizeLimit(@Nullable Output<String> sizeLimit) {
            $.sizeLimit = sizeLimit;
            return this;
        }

        /**
         * @param sizeLimit Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field&#39;s values are of the &#39;Quantity&#39; k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.
         * 
         * ***
         * 
         * @return builder
         * 
         */
        public Builder sizeLimit(String sizeLimit) {
            return sizeLimit(Output.of(sizeLimit));
        }

        public ServiceTemplateSpecVolumeEmptyDirArgs build() {
            return $;
        }
    }

}
