<reponame>rhysmdnz/pulumi-alicloud-rhys-hacks// *** 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.Cen.Outputs
{

    [OutputType]
    public sealed class GetRouteMapsMapResult
    {
        /// <summary>
        /// A match statement. It indicates the mode in which the as-path attribute is matched.
        /// </summary>
        public readonly string AsPathMatchMode;
        /// <summary>
        /// The ID of the CEN instance.
        /// </summary>
        public readonly string CenId;
        /// <summary>
        /// The ID of the region to which the CEN instance belongs.
        /// </summary>
        public readonly string CenRegionId;
        /// <summary>
        /// A match statement. It indicates the mode in which the prefix attribute is matched.
        /// </summary>
        public readonly string CidrMatchMode;
        /// <summary>
        /// A match statement. It indicates the mode in which the community attribute is matched.
        /// </summary>
        public readonly string CommunityMatchMode;
        /// <summary>
        /// An action statement. It indicates the mode in which the community attribute is operated.
        /// </summary>
        public readonly string CommunityOperateMode;
        /// <summary>
        /// The description of the route map.
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// A match statement that indicates the list of IDs of the destination instances.
        /// </summary>
        public readonly ImmutableArray<string> DestinationChildInstanceTypes;
        /// <summary>
        /// A match statement that indicates the prefix list.
        /// </summary>
        public readonly ImmutableArray<string> DestinationCidrBlocks;
        /// <summary>
        /// A match statement that indicates the list of IDs of the destination instances.
        /// </summary>
        public readonly ImmutableArray<string> DestinationInstanceIds;
        /// <summary>
        /// Indicates whether to enable the reverse match method of the DestinationInstanceIds match condition.
        /// </summary>
        public readonly bool DestinationInstanceIdsReverseMatch;
        /// <summary>
        /// A match statement that indicates the list of IDs of the destination route tables.
        /// </summary>
        public readonly ImmutableArray<string> DestinationRouteTableIds;
        /// <summary>
        /// The ID of the route map. It formats as `&lt;cen_id&gt;:&lt;route_map_id&gt;`. Before 1.161.0, it is `route_map_id`.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The action that is performed to a route if the route meets all the match conditions.
        /// </summary>
        public readonly string MapResult;
        /// <summary>
        /// A match statement that indicates the As path list.
        /// </summary>
        public readonly ImmutableArray<string> MatchAsns;
        /// <summary>
        /// A match statement that indicates the community set.
        /// </summary>
        public readonly ImmutableArray<string> MatchCommunitySets;
        /// <summary>
        /// The priority of the next route map that is associated with the current route map.
        /// </summary>
        public readonly int NextPriority;
        /// <summary>
        /// An action statement that operates the community attribute.
        /// </summary>
        public readonly ImmutableArray<string> OperateCommunitySets;
        /// <summary>
        /// An action statement that modifies the preference of the route.
        /// </summary>
        public readonly int Preference;
        /// <summary>
        /// Indicates AS Path prepending when a regional gateway receives or publishes a route.
        /// </summary>
        public readonly ImmutableArray<string> PrependAsPaths;
        /// <summary>
        /// The priority of the route map.
        /// </summary>
        public readonly int Priority;
        /// <summary>
        /// The ID of the route map.
        /// </summary>
        public readonly string RouteMapId;
        /// <summary>
        /// A match statement that indicates the list of route types.
        /// </summary>
        public readonly ImmutableArray<string> RouteTypes;
        /// <summary>
        /// A match statement that indicates the list of IDs of the source instances.
        /// </summary>
        public readonly ImmutableArray<string> SourceChildInstanceTypes;
        /// <summary>
        /// A match statement that indicates the list of IDs of the source instances.
        /// </summary>
        public readonly ImmutableArray<string> SourceInstanceIds;
        /// <summary>
        /// Indicates whether to enable the reverse match method of the SourceInstanceIds match condition.
        /// </summary>
        public readonly bool SourceInstanceIdsReverseMatch;
        /// <summary>
        /// A match statement that indicates the list of IDs of the source regions.
        /// </summary>
        public readonly ImmutableArray<string> SourceRegionIds;
        /// <summary>
        /// A match statement that indicates the list of IDs of the source route tables.
        /// </summary>
        public readonly ImmutableArray<string> SourceRouteTableIds;
        /// <summary>
        /// The status of the route map, including `Creating`, `Active` and `Deleting`.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// The direction in which the route map is applied, including `RegionIn` and `RegionOut`.
        /// </summary>
        public readonly string TransmitDirection;

        [OutputConstructor]
        private GetRouteMapsMapResult(
            string asPathMatchMode,

            string cenId,

            string cenRegionId,

            string cidrMatchMode,

            string communityMatchMode,

            string communityOperateMode,

            string description,

            ImmutableArray<string> destinationChildInstanceTypes,

            ImmutableArray<string> destinationCidrBlocks,

            ImmutableArray<string> destinationInstanceIds,

            bool destinationInstanceIdsReverseMatch,

            ImmutableArray<string> destinationRouteTableIds,

            string id,

            string mapResult,

            ImmutableArray<string> matchAsns,

            ImmutableArray<string> matchCommunitySets,

            int nextPriority,

            ImmutableArray<string> operateCommunitySets,

            int preference,

            ImmutableArray<string> prependAsPaths,

            int priority,

            string routeMapId,

            ImmutableArray<string> routeTypes,

            ImmutableArray<string> sourceChildInstanceTypes,

            ImmutableArray<string> sourceInstanceIds,

            bool sourceInstanceIdsReverseMatch,

            ImmutableArray<string> sourceRegionIds,

            ImmutableArray<string> sourceRouteTableIds,

            string status,

            string transmitDirection)
        {
            AsPathMatchMode = asPathMatchMode;
            CenId = cenId;
            CenRegionId = cenRegionId;
            CidrMatchMode = cidrMatchMode;
            CommunityMatchMode = communityMatchMode;
            CommunityOperateMode = communityOperateMode;
            Description = description;
            DestinationChildInstanceTypes = destinationChildInstanceTypes;
            DestinationCidrBlocks = destinationCidrBlocks;
            DestinationInstanceIds = destinationInstanceIds;
            DestinationInstanceIdsReverseMatch = destinationInstanceIdsReverseMatch;
            DestinationRouteTableIds = destinationRouteTableIds;
            Id = id;
            MapResult = mapResult;
            MatchAsns = matchAsns;
            MatchCommunitySets = matchCommunitySets;
            NextPriority = nextPriority;
            OperateCommunitySets = operateCommunitySets;
            Preference = preference;
            PrependAsPaths = prependAsPaths;
            Priority = priority;
            RouteMapId = routeMapId;
            RouteTypes = routeTypes;
            SourceChildInstanceTypes = sourceChildInstanceTypes;
            SourceInstanceIds = sourceInstanceIds;
            SourceInstanceIdsReverseMatch = sourceInstanceIdsReverseMatch;
            SourceRegionIds = sourceRegionIds;
            SourceRouteTableIds = sourceRouteTableIds;
            Status = status;
            TransmitDirection = transmitDirection;
        }
    }
}
