// *** WARNING: this file was generated by the Pulumi SDK Generator. ***
// *** 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.GoogleNative.FirebaseHosting.V1Beta1.Outputs
{

    /// <summary>
    /// The configuration for how incoming requests to a site should be routed and processed before serving content. The URL request paths are matched against the specified URL patterns in the configuration, then Hosting applies the applicable configuration according to a specific [priority order](https://firebase.google.com/docs/hosting/full-config#hosting_priority_order).
    /// </summary>
    [OutputType]
    public sealed class ServingConfigResponse
    {
        /// <summary>
        /// How to handle well known App Association files.
        /// </summary>
        public readonly string AppAssociation;
        /// <summary>
        /// Defines whether to drop the file extension from uploaded files.
        /// </summary>
        public readonly bool CleanUrls;
        /// <summary>
        /// An array of objects, where each object specifies a URL pattern that, if matched to the request URL path, triggers Hosting to apply the specified custom response headers.
        /// </summary>
        public readonly ImmutableArray<Outputs.HeaderResponse> Headers;
        /// <summary>
        /// Optional. Defines i18n rewrite behavior.
        /// </summary>
        public readonly Outputs.I18nConfigResponse I18n;
        /// <summary>
        /// An array of objects (called redirect rules), where each rule specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond with a redirect to the specified destination path.
        /// </summary>
        public readonly ImmutableArray<Outputs.RedirectResponse> Redirects;
        /// <summary>
        /// An array of objects (called rewrite rules), where each rule specifies a URL pattern that, if matched to the request URL path, triggers Hosting to respond as if the service were given the specified destination URL.
        /// </summary>
        public readonly ImmutableArray<Outputs.RewriteResponse> Rewrites;
        /// <summary>
        /// Defines how to handle a trailing slash in the URL path.
        /// </summary>
        public readonly string TrailingSlashBehavior;

        [OutputConstructor]
        private ServingConfigResponse(
            string appAssociation,

            bool cleanUrls,

            ImmutableArray<Outputs.HeaderResponse> headers,

            Outputs.I18nConfigResponse i18n,

            ImmutableArray<Outputs.RedirectResponse> redirects,

            ImmutableArray<Outputs.RewriteResponse> rewrites,

            string trailingSlashBehavior)
        {
            AppAssociation = appAssociation;
            CleanUrls = cleanUrls;
            Headers = headers;
            I18n = i18n;
            Redirects = redirects;
            Rewrites = rewrites;
            TrailingSlashBehavior = trailingSlashBehavior;
        }
    }
}
