// *** 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 PiersKarsenbarg.Codefresh.Outputs
{

    [OutputType]
    public sealed class PipelineSpecTrigger
    {
        /// <summary>
        /// A regular expression and will only trigger for branches that match this naming pattern.
        /// </summary>
        public readonly string? BranchRegex;
        /// <summary>
        /// Flag to manage how the `branch_regex` field is interpreted. Possible values: "multiselect-exclude", "multiselect", "regex". Default: "regex"
        /// </summary>
        public readonly string? BranchRegexInput;
        /// <summary>
        /// A regular expression and will only trigger for pull requests where a comment matches this naming pattern.
        /// </summary>
        public readonly string? CommentRegex;
        /// <summary>
        /// The commit status title pushed to the GIT version control system.
        /// </summary>
        public readonly string? CommitStatusTitle;
        /// <summary>
        /// Codefresh Git context.
        /// </summary>
        public readonly string? Context;
        /// <summary>
        /// A list of strings representing the contexts ([shared_configuration](https://codefresh.io/docs/docs/configure-ci-cd-pipeline/shared-configuration/)) to be loaded when the trigger is executed
        /// </summary>
        public readonly ImmutableArray<string> Contexts;
        /// <summary>
        /// The trigger description.
        /// </summary>
        public readonly string? Description;
        /// <summary>
        /// Boolean. If true, trigger will never be activated.
        /// </summary>
        public readonly bool? Disabled;
        /// <summary>
        /// A list of GitHub events for which a Pipeline is triggered. Default value - **push.heads**.
        /// </summary>
        public readonly ImmutableArray<string> Events;
        /// <summary>
        /// Allows to constrain the build and trigger it only if the modified files from the commit match this glob expression.
        /// </summary>
        public readonly string? ModifiedFilesGlob;
        /// <summary>
        /// The display name for the pipeline.
        /// </summary>
        public readonly string? Name;
        /// <summary>
        /// A `options` block as documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.PipelineSpecTriggerOption> Options;
        /// <summary>
        /// Default value - **github**.
        /// </summary>
        public readonly string? Provider;
        /// <summary>
        /// Boolean. If this trigger is also applicable to Git forks.
        /// </summary>
        public readonly bool? PullRequestAllowForkEvents;
        /// <summary>
        /// A regular expression and will only trigger for pull requests to branches that match this naming pattern.
        /// </summary>
        public readonly string? PullRequestTargetBranchRegex;
        /// <summary>
        /// The GitHub `account/repo_name`.
        /// </summary>
        public readonly string? Repo;
        /// <summary>
        /// A collection of `runtime_environment` blocks as documented below.
        /// - `options`: (Optional) A collection `option` blocks as documented below.
        /// ---
        /// </summary>
        public readonly ImmutableArray<Outputs.PipelineSpecTriggerRuntimeEnvironment> RuntimeEnvironments;
        /// <summary>
        /// The trigger type. Default value - **git**.
        /// </summary>
        public readonly string? Type;
        /// <summary>
        /// Trigger variables.
        /// </summary>
        public readonly ImmutableDictionary<string, string>? Variables;

        [OutputConstructor]
        private PipelineSpecTrigger(
            string? branchRegex,

            string? branchRegexInput,

            string? commentRegex,

            string? commitStatusTitle,

            string? context,

            ImmutableArray<string> contexts,

            string? description,

            bool? disabled,

            ImmutableArray<string> events,

            string? modifiedFilesGlob,

            string? name,

            ImmutableArray<Outputs.PipelineSpecTriggerOption> options,

            string? provider,

            bool? pullRequestAllowForkEvents,

            string? pullRequestTargetBranchRegex,

            string? repo,

            ImmutableArray<Outputs.PipelineSpecTriggerRuntimeEnvironment> runtimeEnvironments,

            string? type,

            ImmutableDictionary<string, string>? variables)
        {
            BranchRegex = branchRegex;
            BranchRegexInput = branchRegexInput;
            CommentRegex = commentRegex;
            CommitStatusTitle = commitStatusTitle;
            Context = context;
            Contexts = contexts;
            Description = description;
            Disabled = disabled;
            Events = events;
            ModifiedFilesGlob = modifiedFilesGlob;
            Name = name;
            Options = options;
            Provider = provider;
            PullRequestAllowForkEvents = pullRequestAllowForkEvents;
            PullRequestTargetBranchRegex = pullRequestTargetBranchRegex;
            Repo = repo;
            RuntimeEnvironments = runtimeEnvironments;
            Type = type;
            Variables = variables;
        }
    }
}
