// *** 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;

namespace Pulumi.AliCloud.Ecs.Outputs
{

    [OutputType]
    public sealed class GetSecurityGroupRulesRuleResult
    {
        /// <summary>
        /// The description of the rule.
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// Target IP address segment for egress authorization.
        /// </summary>
        public readonly string DestCidrIp;
        /// <summary>
        /// Target security group id for ingress authorization.
        /// </summary>
        public readonly string DestGroupId;
        /// <summary>
        /// Alibaba Cloud account of the target security group.
        /// </summary>
        public readonly string DestGroupOwnerAccount;
        /// <summary>
        /// Authorization direction. Valid values are: `ingress` or `egress`.
        /// </summary>
        public readonly string Direction;
        /// <summary>
        /// The IP protocol. Valid values are: `tcp`, `udp`, `icmp`, `gre` and `all`.
        /// </summary>
        public readonly string IpProtocol;
        /// <summary>
        /// Refers to the network type. Can be either `internet` or `intranet`. The default value is `internet`.
        /// </summary>
        public readonly string NicType;
        /// <summary>
        /// Authorization policy. Can be either `accept` or `drop`. The default value is `accept`.
        /// </summary>
        public readonly string Policy;
        /// <summary>
        /// The range of port numbers.
        /// </summary>
        public readonly string PortRange;
        /// <summary>
        /// Rule priority.
        /// </summary>
        public readonly int Priority;
        /// <summary>
        /// Source IP address segment for ingress authorization.
        /// </summary>
        public readonly string SourceCidrIp;
        /// <summary>
        /// Source security group ID for ingress authorization.
        /// </summary>
        public readonly string SourceGroupId;
        /// <summary>
        /// Alibaba Cloud account of the source security group.
        /// </summary>
        public readonly string SourceGroupOwnerAccount;

        [OutputConstructor]
        private GetSecurityGroupRulesRuleResult(
            string description,

            string destCidrIp,

            string destGroupId,

            string destGroupOwnerAccount,

            string direction,

            string ipProtocol,

            string nicType,

            string policy,

            string portRange,

            int priority,

            string sourceCidrIp,

            string sourceGroupId,

            string sourceGroupOwnerAccount)
        {
            Description = description;
            DestCidrIp = destCidrIp;
            DestGroupId = destGroupId;
            DestGroupOwnerAccount = destGroupOwnerAccount;
            Direction = direction;
            IpProtocol = ipProtocol;
            NicType = nicType;
            Policy = policy;
            PortRange = portRange;
            Priority = priority;
            SourceCidrIp = sourceCidrIp;
            SourceGroupId = sourceGroupId;
            SourceGroupOwnerAccount = sourceGroupOwnerAccount;
        }
    }
}
