<gh_stars>0// *** 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.Security.Outputs
{

    [OutputType]
    public sealed class GroupRuleSetEgress
    {
        /// <summary>
        /// Rule policy of security group. Valid values: `ACCEPT` and `DROP`.
        /// </summary>
        public readonly string Action;
        /// <summary>
        /// Specify Group ID of Address template like `ipmg-xxxxxxxx`, conflict with `source_security_id` and `cidr_block`.
        /// </summary>
        public readonly string? AddressTemplateGroup;
        /// <summary>
        /// Specify Address template ID like `ipm-xxxxxxxx`, conflict with `source_security_id` and `cidr_block`.
        /// </summary>
        public readonly string? AddressTemplateId;
        /// <summary>
        /// An IP address network or CIDR segment. NOTE: `cidr_block`, `ipv6_cidr_block`, `source_security_id` and `address_template_*` are exclusive and cannot be set in the same time.
        /// </summary>
        public readonly string? CidrBlock;
        /// <summary>
        /// Description of the security group rule.
        /// </summary>
        public readonly string? Description;
        /// <summary>
        /// An IPV6 address network or CIDR segment, and conflict with `source_security_id` and `address_template_*`.
        /// </summary>
        public readonly string? Ipv6CidrBlock;
        /// <summary>
        /// Range of the port. The available value can be one, multiple or one segment. E.g. `80`, `80,90` and `80-90`. Default to all ports, and conflicts with `service_template_*`.
        /// </summary>
        public readonly string? Port;
        /// <summary>
        /// Type of IP protocol. Valid values: `TCP`, `UDP` and `ICMP`. Default to all types protocol, and conflicts with `service_template_*`.
        /// </summary>
        public readonly string? Protocol;
        /// <summary>
        /// Specify Group ID of Protocol template ID like `ppmg-xxxxxxxx`, conflict with `cidr_block` and `port`.
        /// </summary>
        public readonly string? ServiceTemplateGroup;
        /// <summary>
        /// Specify Protocol template ID like `ppm-xxxxxxxx`, conflict with `cidr_block` and `port`.
        /// </summary>
        public readonly string? ServiceTemplateId;
        /// <summary>
        /// ID of the nested security group, and conflicts with `cidr_block` and `address_template_*`.
        /// </summary>
        public readonly string? SourceSecurityId;

        [OutputConstructor]
        private GroupRuleSetEgress(
            string action,

            string? addressTemplateGroup,

            string? addressTemplateId,

            string? cidrBlock,

            string? description,

            string? ipv6CidrBlock,

            string? port,

            string? protocol,

            string? serviceTemplateGroup,

            string? serviceTemplateId,

            string? sourceSecurityId)
        {
            Action = action;
            AddressTemplateGroup = addressTemplateGroup;
            AddressTemplateId = addressTemplateId;
            CidrBlock = cidrBlock;
            Description = description;
            Ipv6CidrBlock = ipv6CidrBlock;
            Port = port;
            Protocol = protocol;
            ServiceTemplateGroup = serviceTemplateGroup;
            ServiceTemplateId = serviceTemplateId;
            SourceSecurityId = sourceSecurityId;
        }
    }
}
