<filename>sdk/dotnet/Tencentcloud/Cdn/Inputs/DomainOriginArgs.cs// *** 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 DomainOriginArgs : Pulumi.ResourceArgs
    {
        [Input("backupOriginLists")]
        private InputList<string>? _backupOriginLists;

        /// <summary>
        /// Backup origin server list. Valid values can be ip or domain name. When modifying the backup origin server, you need to enter the corresponding `backup_origin_type`.
        /// </summary>
        public InputList<string> BackupOriginLists
        {
            get => _backupOriginLists ?? (_backupOriginLists = new InputList<string>());
            set => _backupOriginLists = value;
        }

        /// <summary>
        /// Backup origin server type, which supports the following types: `domain`: domain name type, `ip`: IP list used as origin server.
        /// </summary>
        [Input("backupOriginType")]
        public Input<string>? BackupOriginType { get; set; }

        /// <summary>
        /// Host header used when accessing the backup origin server. If left empty, the ServerName of master origin server will be used by default.
        /// </summary>
        [Input("backupServerName")]
        public Input<string>? BackupServerName { get; set; }

        /// <summary>
        /// When OriginType is COS, you can specify if access to private buckets is allowed. Valid values are `on` and `off`. and default value is `off`.
        /// </summary>
        [Input("cosPrivateAccess")]
        public Input<string>? CosPrivateAccess { get; set; }

        [Input("originLists", required: true)]
        private InputList<string>? _originLists;

        /// <summary>
        /// Master origin server list. Valid values can be ip or domain name. When modifying the origin server, you need to enter the corresponding `origin_type`.
        /// </summary>
        public InputList<string> OriginLists
        {
            get => _originLists ?? (_originLists = new InputList<string>());
            set => _originLists = value;
        }

        /// <summary>
        /// Origin-pull protocol configuration. `http`: forced HTTP origin-pull, `follow`: protocol follow origin-pull, `https`: forced HTTPS origin-pull. This only supports origin server port 443 for origin-pull.
        /// </summary>
        [Input("originPullProtocol")]
        public Input<string>? OriginPullProtocol { get; set; }

        /// <summary>
        /// Master origin server type. The following types are supported: `domain`: domain name type, `cos`: COS origin, `ip`: IP list used as origin server, `ipv6`: origin server list is a single IPv6 address, `ip_ipv6`: origin server list is multiple IPv4 addresses and an IPv6 address.
        /// </summary>
        [Input("originType", required: true)]
        public Input<string> OriginType { get; set; } = null!;

        /// <summary>
        /// Host header used when accessing the master origin server. If left empty, the acceleration domain name will be used by default.
        /// </summary>
        [Input("serverName")]
        public Input<string>? ServerName { get; set; }

        public DomainOriginArgs()
        {
        }
    }
}
