<reponame>Dwonczykj/gember_deploy// *** 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! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cdn.Inputs
{

    public sealed class DomainRuleCachArgs : Pulumi.ResourceArgs
    {
        /// <summary>
        /// Cache expiration time setting, the unit is second, the maximum can be set to 365 days.
        /// </summary>
        [Input("cacheTime", required: true)]
        public Input<int> CacheTime { get; set; } = null!;

        /// <summary>
        /// Advanced cache expiration configuration. When it is turned on, it will compare the max-age value returned by the origin site with the cache expiration time set in CacheRules, and take the minimum value to cache at the node. Valid values are `on` and `off`. Default value is `off`.
        /// </summary>
        [Input("compareMaxAge")]
        public Input<string>? CompareMaxAge { get; set; }

        /// <summary>
        /// Follow the source station configuration switch. Valid values are `on` and `off`.
        /// </summary>
        [Input("followOriginSwitch")]
        public Input<string>? FollowOriginSwitch { get; set; }

        /// <summary>
        /// Specify whether to enable heuristic cache, only available while `follow_origin_switch` enabled, values: `on`, `off` (Default).
        /// </summary>
        [Input("heuristicCacheSwitch")]
        public Input<string>? HeuristicCacheSwitch { get; set; }

        /// <summary>
        /// Specify heuristic cache time in second, only available while `follow_origin_switch` and `heuristic_cache_switch` enabled.
        /// </summary>
        [Input("heuristicCacheTime")]
        public Input<int>? HeuristicCacheTime { get; set; }

        /// <summary>
        /// Force caching. After opening, the no-store and no-cache resources returned by the origin site will also be cached in accordance with the CacheRules rules. Valid values are `on` and `off`. Default value is `off`.
        /// </summary>
        [Input("ignoreCacheControl")]
        public Input<string>? IgnoreCacheControl { get; set; }

        /// <summary>
        /// Ignore the Set-Cookie header of the origin site. Valid values are `on` and `off`. Default value is `off`. This parameter is for white-list customer.
        /// </summary>
        [Input("ignoreSetCookie")]
        public Input<string>? IgnoreSetCookie { get; set; }

        /// <summary>
        /// Cache configuration switch. Valid values are `on` and `off`.
        /// </summary>
        [Input("noCacheSwitch")]
        public Input<string>? NoCacheSwitch { get; set; }

        /// <summary>
        /// Always check back to origin. Valid values are `on` and `off`. Default value is `off`.
        /// </summary>
        [Input("reValidate")]
        public Input<string>? ReValidate { get; set; }

        [Input("rulePaths")]
        private InputList<string>? _rulePaths;

        /// <summary>
        /// Matching content under the corresponding type of CacheType: `all`: fill *, `file`: fill in the suffix name, such as jpg, txt, `directory`: fill in the path, such as /xxx/test, `path`: fill in the absolute path, such as /xxx/test.html, `index`: fill /.
        /// </summary>
        public InputList<string> RulePaths
        {
            get => _rulePaths ?? (_rulePaths = new InputList<string>());
            set => _rulePaths = value;
        }

        /// <summary>
        /// Rule type. The following types are supported: `all`: all documents take effect, `file`: the specified file suffix takes effect, `directory`: the specified path takes effect, `path`: specify the absolute path to take effect, `index`: home page.
        /// </summary>
        [Input("ruleType")]
        public Input<string>? RuleType { get; set; }

        /// <summary>
        /// Cache configuration switch. Valid values are `on` and `off`.
        /// </summary>
        [Input("switch")]
        public Input<string>? Switch { get; set; }

        public DomainRuleCachArgs()
        {
        }
    }
}
