// *** 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.Teo.Inputs
{

    public sealed class OriginGroupOriginRecordArgs : Pulumi.ResourceArgs
    {
        [Input("areas")]
        private InputList<string>? _areas;

        /// <summary>
        /// Indicating origin site&amp;#39;s area when `Type` field is `area`. An empty List indicate the default area. Valid value:- Asia, Americas, Europe, Africa or Oceania.- 2 characters ISO 3166 area code.
        /// </summary>
        public InputList<string> Areas
        {
            get => _areas ?? (_areas = new InputList<string>());
            set => _areas = value;
        }

        /// <summary>
        /// Port of the origin site. Valid value range: 1-65535.
        /// </summary>
        [Input("port", required: true)]
        public Input<int> Port { get; set; } = null!;

        /// <summary>
        /// Whether origin site is using private authentication. Only valid when `OriginType` is `third_party`.
        /// </summary>
        [Input("private")]
        public Input<bool>? Private { get; set; }

        [Input("privateParameters")]
        private InputList<Inputs.OriginGroupOriginRecordPrivateParameterArgs>? _privateParameters;

        /// <summary>
        /// Parameters for private authentication. Only valid when `Private` is `true`.
        /// </summary>
        public InputList<Inputs.OriginGroupOriginRecordPrivateParameterArgs> PrivateParameters
        {
            get => _privateParameters ?? (_privateParameters = new InputList<Inputs.OriginGroupOriginRecordPrivateParameterArgs>());
            set => _privateParameters = value;
        }

        /// <summary>
        /// Record value, which could be an IPv4/IPv6 address or a domain.
        /// </summary>
        [Input("record", required: true)]
        public Input<string> Record { get; set; } = null!;

        [Input("recordId")]
        public Input<string>? RecordId { get; set; }

        /// <summary>
        /// Indicating origin site&amp;#39;s weight when `Type` field is `weight`. Valid value range: 1-100. Sum of all weights should be 100.
        /// </summary>
        [Input("weight")]
        public Input<int>? Weight { get; set; }

        public OriginGroupOriginRecordArgs()
        {
        }
    }
}
