All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.cloudflare.AccessApplicationArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.cloudflare;

import com.pulumi.cloudflare.inputs.AccessApplicationCorsHeaderArgs;
import com.pulumi.cloudflare.inputs.AccessApplicationSaasAppArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class AccessApplicationArgs extends com.pulumi.resources.ResourceArgs {

    public static final AccessApplicationArgs Empty = new AccessApplicationArgs();

    /**
     * The account identifier to target for the resource. Conflicts with `zone_id`.
     * 
     */
    @Import(name="accountId")
    private @Nullable Output accountId;

    /**
     * @return The account identifier to target for the resource. Conflicts with `zone_id`.
     * 
     */
    public Optional> accountId() {
        return Optional.ofNullable(this.accountId);
    }

    /**
     * The identity providers selected for the application.
     * 
     */
    @Import(name="allowedIdps")
    private @Nullable Output> allowedIdps;

    /**
     * @return The identity providers selected for the application.
     * 
     */
    public Optional>> allowedIdps() {
        return Optional.ofNullable(this.allowedIdps);
    }

    /**
     * Option to show/hide applications in App Launcher. Defaults to `true`.
     * 
     */
    @Import(name="appLauncherVisible")
    private @Nullable Output appLauncherVisible;

    /**
     * @return Option to show/hide applications in App Launcher. Defaults to `true`.
     * 
     */
    public Optional> appLauncherVisible() {
        return Optional.ofNullable(this.appLauncherVisible);
    }

    /**
     * Option to skip identity provider selection if only one is configured in `allowed_idps`. Defaults to `false`.
     * 
     */
    @Import(name="autoRedirectToIdentity")
    private @Nullable Output autoRedirectToIdentity;

    /**
     * @return Option to skip identity provider selection if only one is configured in `allowed_idps`. Defaults to `false`.
     * 
     */
    public Optional> autoRedirectToIdentity() {
        return Optional.ofNullable(this.autoRedirectToIdentity);
    }

    /**
     * CORS configuration for the Access Application. See below for reference structure.
     * 
     */
    @Import(name="corsHeaders")
    private @Nullable Output> corsHeaders;

    /**
     * @return CORS configuration for the Access Application. See below for reference structure.
     * 
     */
    public Optional>> corsHeaders() {
        return Optional.ofNullable(this.corsHeaders);
    }

    /**
     * Option that returns a custom error message when a user is denied access to the application.
     * 
     */
    @Import(name="customDenyMessage")
    private @Nullable Output customDenyMessage;

    /**
     * @return Option that returns a custom error message when a user is denied access to the application.
     * 
     */
    public Optional> customDenyMessage() {
        return Optional.ofNullable(this.customDenyMessage);
    }

    /**
     * Option that redirects to a custom URL when a user is denied access to the application.
     * 
     */
    @Import(name="customDenyUrl")
    private @Nullable Output customDenyUrl;

    /**
     * @return Option that redirects to a custom URL when a user is denied access to the application.
     * 
     */
    public Optional> customDenyUrl() {
        return Optional.ofNullable(this.customDenyUrl);
    }

    /**
     * The complete URL of the asset you wish to put Cloudflare Access in front of. Can include subdomains or paths. Or both.
     * 
     */
    @Import(name="domain")
    private @Nullable Output domain;

    /**
     * @return The complete URL of the asset you wish to put Cloudflare Access in front of. Can include subdomains or paths. Or both.
     * 
     */
    public Optional> domain() {
        return Optional.ofNullable(this.domain);
    }

    /**
     * Option to provide increased security against compromised authorization tokens and CSRF attacks by requiring an additional "binding" cookie on requests. Defaults to `false`.
     * 
     */
    @Import(name="enableBindingCookie")
    private @Nullable Output enableBindingCookie;

    /**
     * @return Option to provide increased security against compromised authorization tokens and CSRF attacks by requiring an additional "binding" cookie on requests. Defaults to `false`.
     * 
     */
    public Optional> enableBindingCookie() {
        return Optional.ofNullable(this.enableBindingCookie);
    }

    /**
     * Option to add the `HttpOnly` cookie flag to access tokens.
     * 
     */
    @Import(name="httpOnlyCookieAttribute")
    private @Nullable Output httpOnlyCookieAttribute;

    /**
     * @return Option to add the `HttpOnly` cookie flag to access tokens.
     * 
     */
    public Optional> httpOnlyCookieAttribute() {
        return Optional.ofNullable(this.httpOnlyCookieAttribute);
    }

    /**
     * Image URL for the logo shown in the app launcher dashboard.
     * 
     */
    @Import(name="logoUrl")
    private @Nullable Output logoUrl;

    /**
     * @return Image URL for the logo shown in the app launcher dashboard.
     * 
     */
    public Optional> logoUrl() {
        return Optional.ofNullable(this.logoUrl);
    }

    /**
     * Friendly name of the Access Application.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return Friendly name of the Access Application.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * SaaS configuration for the Access Application.
     * 
     */
    @Import(name="saasApp")
    private @Nullable Output saasApp;

    /**
     * @return SaaS configuration for the Access Application.
     * 
     */
    public Optional> saasApp() {
        return Optional.ofNullable(this.saasApp);
    }

    /**
     * Defines the same-site cookie setting for access tokens. Available values: `none`, `lax`, `strict`.
     * 
     */
    @Import(name="sameSiteCookieAttribute")
    private @Nullable Output sameSiteCookieAttribute;

    /**
     * @return Defines the same-site cookie setting for access tokens. Available values: `none`, `lax`, `strict`.
     * 
     */
    public Optional> sameSiteCookieAttribute() {
        return Optional.ofNullable(this.sameSiteCookieAttribute);
    }

    /**
     * Option to return a 401 status code in service authentication rules on failed requests. Defaults to `false`.
     * 
     */
    @Import(name="serviceAuth401Redirect")
    private @Nullable Output serviceAuth401Redirect;

    /**
     * @return Option to return a 401 status code in service authentication rules on failed requests. Defaults to `false`.
     * 
     */
    public Optional> serviceAuth401Redirect() {
        return Optional.ofNullable(this.serviceAuth401Redirect);
    }

    /**
     * How often a user will be forced to re-authorise. Must be in the format `48h` or `2h45m`. Defaults to `24h`.
     * 
     */
    @Import(name="sessionDuration")
    private @Nullable Output sessionDuration;

    /**
     * @return How often a user will be forced to re-authorise. Must be in the format `48h` or `2h45m`. Defaults to `24h`.
     * 
     */
    public Optional> sessionDuration() {
        return Optional.ofNullable(this.sessionDuration);
    }

    /**
     * Option to skip the authorization interstitial when using the CLI. Defaults to `false`.
     * 
     */
    @Import(name="skipInterstitial")
    private @Nullable Output skipInterstitial;

    /**
     * @return Option to skip the authorization interstitial when using the CLI. Defaults to `false`.
     * 
     */
    public Optional> skipInterstitial() {
        return Optional.ofNullable(this.skipInterstitial);
    }

    /**
     * The application type. Available values: `app_launcher`, `bookmark`, `biso`, `dash_sso`, `saas`, `self_hosted`, `ssh`, `vnc`, `warp`. Defaults to `self_hosted`.
     * 
     */
    @Import(name="type")
    private @Nullable Output type;

    /**
     * @return The application type. Available values: `app_launcher`, `bookmark`, `biso`, `dash_sso`, `saas`, `self_hosted`, `ssh`, `vnc`, `warp`. Defaults to `self_hosted`.
     * 
     */
    public Optional> type() {
        return Optional.ofNullable(this.type);
    }

    /**
     * The zone identifier to target for the resource. Conflicts with `account_id`.
     * 
     */
    @Import(name="zoneId")
    private @Nullable Output zoneId;

    /**
     * @return The zone identifier to target for the resource. Conflicts with `account_id`.
     * 
     */
    public Optional> zoneId() {
        return Optional.ofNullable(this.zoneId);
    }

    private AccessApplicationArgs() {}

    private AccessApplicationArgs(AccessApplicationArgs $) {
        this.accountId = $.accountId;
        this.allowedIdps = $.allowedIdps;
        this.appLauncherVisible = $.appLauncherVisible;
        this.autoRedirectToIdentity = $.autoRedirectToIdentity;
        this.corsHeaders = $.corsHeaders;
        this.customDenyMessage = $.customDenyMessage;
        this.customDenyUrl = $.customDenyUrl;
        this.domain = $.domain;
        this.enableBindingCookie = $.enableBindingCookie;
        this.httpOnlyCookieAttribute = $.httpOnlyCookieAttribute;
        this.logoUrl = $.logoUrl;
        this.name = $.name;
        this.saasApp = $.saasApp;
        this.sameSiteCookieAttribute = $.sameSiteCookieAttribute;
        this.serviceAuth401Redirect = $.serviceAuth401Redirect;
        this.sessionDuration = $.sessionDuration;
        this.skipInterstitial = $.skipInterstitial;
        this.type = $.type;
        this.zoneId = $.zoneId;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(AccessApplicationArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private AccessApplicationArgs $;

        public Builder() {
            $ = new AccessApplicationArgs();
        }

        public Builder(AccessApplicationArgs defaults) {
            $ = new AccessApplicationArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param accountId The account identifier to target for the resource. Conflicts with `zone_id`.
         * 
         * @return builder
         * 
         */
        public Builder accountId(@Nullable Output accountId) {
            $.accountId = accountId;
            return this;
        }

        /**
         * @param accountId The account identifier to target for the resource. Conflicts with `zone_id`.
         * 
         * @return builder
         * 
         */
        public Builder accountId(String accountId) {
            return accountId(Output.of(accountId));
        }

        /**
         * @param allowedIdps The identity providers selected for the application.
         * 
         * @return builder
         * 
         */
        public Builder allowedIdps(@Nullable Output> allowedIdps) {
            $.allowedIdps = allowedIdps;
            return this;
        }

        /**
         * @param allowedIdps The identity providers selected for the application.
         * 
         * @return builder
         * 
         */
        public Builder allowedIdps(List allowedIdps) {
            return allowedIdps(Output.of(allowedIdps));
        }

        /**
         * @param allowedIdps The identity providers selected for the application.
         * 
         * @return builder
         * 
         */
        public Builder allowedIdps(String... allowedIdps) {
            return allowedIdps(List.of(allowedIdps));
        }

        /**
         * @param appLauncherVisible Option to show/hide applications in App Launcher. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder appLauncherVisible(@Nullable Output appLauncherVisible) {
            $.appLauncherVisible = appLauncherVisible;
            return this;
        }

        /**
         * @param appLauncherVisible Option to show/hide applications in App Launcher. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder appLauncherVisible(Boolean appLauncherVisible) {
            return appLauncherVisible(Output.of(appLauncherVisible));
        }

        /**
         * @param autoRedirectToIdentity Option to skip identity provider selection if only one is configured in `allowed_idps`. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder autoRedirectToIdentity(@Nullable Output autoRedirectToIdentity) {
            $.autoRedirectToIdentity = autoRedirectToIdentity;
            return this;
        }

        /**
         * @param autoRedirectToIdentity Option to skip identity provider selection if only one is configured in `allowed_idps`. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder autoRedirectToIdentity(Boolean autoRedirectToIdentity) {
            return autoRedirectToIdentity(Output.of(autoRedirectToIdentity));
        }

        /**
         * @param corsHeaders CORS configuration for the Access Application. See below for reference structure.
         * 
         * @return builder
         * 
         */
        public Builder corsHeaders(@Nullable Output> corsHeaders) {
            $.corsHeaders = corsHeaders;
            return this;
        }

        /**
         * @param corsHeaders CORS configuration for the Access Application. See below for reference structure.
         * 
         * @return builder
         * 
         */
        public Builder corsHeaders(List corsHeaders) {
            return corsHeaders(Output.of(corsHeaders));
        }

        /**
         * @param corsHeaders CORS configuration for the Access Application. See below for reference structure.
         * 
         * @return builder
         * 
         */
        public Builder corsHeaders(AccessApplicationCorsHeaderArgs... corsHeaders) {
            return corsHeaders(List.of(corsHeaders));
        }

        /**
         * @param customDenyMessage Option that returns a custom error message when a user is denied access to the application.
         * 
         * @return builder
         * 
         */
        public Builder customDenyMessage(@Nullable Output customDenyMessage) {
            $.customDenyMessage = customDenyMessage;
            return this;
        }

        /**
         * @param customDenyMessage Option that returns a custom error message when a user is denied access to the application.
         * 
         * @return builder
         * 
         */
        public Builder customDenyMessage(String customDenyMessage) {
            return customDenyMessage(Output.of(customDenyMessage));
        }

        /**
         * @param customDenyUrl Option that redirects to a custom URL when a user is denied access to the application.
         * 
         * @return builder
         * 
         */
        public Builder customDenyUrl(@Nullable Output customDenyUrl) {
            $.customDenyUrl = customDenyUrl;
            return this;
        }

        /**
         * @param customDenyUrl Option that redirects to a custom URL when a user is denied access to the application.
         * 
         * @return builder
         * 
         */
        public Builder customDenyUrl(String customDenyUrl) {
            return customDenyUrl(Output.of(customDenyUrl));
        }

        /**
         * @param domain The complete URL of the asset you wish to put Cloudflare Access in front of. Can include subdomains or paths. Or both.
         * 
         * @return builder
         * 
         */
        public Builder domain(@Nullable Output domain) {
            $.domain = domain;
            return this;
        }

        /**
         * @param domain The complete URL of the asset you wish to put Cloudflare Access in front of. Can include subdomains or paths. Or both.
         * 
         * @return builder
         * 
         */
        public Builder domain(String domain) {
            return domain(Output.of(domain));
        }

        /**
         * @param enableBindingCookie Option to provide increased security against compromised authorization tokens and CSRF attacks by requiring an additional "binding" cookie on requests. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder enableBindingCookie(@Nullable Output enableBindingCookie) {
            $.enableBindingCookie = enableBindingCookie;
            return this;
        }

        /**
         * @param enableBindingCookie Option to provide increased security against compromised authorization tokens and CSRF attacks by requiring an additional "binding" cookie on requests. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder enableBindingCookie(Boolean enableBindingCookie) {
            return enableBindingCookie(Output.of(enableBindingCookie));
        }

        /**
         * @param httpOnlyCookieAttribute Option to add the `HttpOnly` cookie flag to access tokens.
         * 
         * @return builder
         * 
         */
        public Builder httpOnlyCookieAttribute(@Nullable Output httpOnlyCookieAttribute) {
            $.httpOnlyCookieAttribute = httpOnlyCookieAttribute;
            return this;
        }

        /**
         * @param httpOnlyCookieAttribute Option to add the `HttpOnly` cookie flag to access tokens.
         * 
         * @return builder
         * 
         */
        public Builder httpOnlyCookieAttribute(Boolean httpOnlyCookieAttribute) {
            return httpOnlyCookieAttribute(Output.of(httpOnlyCookieAttribute));
        }

        /**
         * @param logoUrl Image URL for the logo shown in the app launcher dashboard.
         * 
         * @return builder
         * 
         */
        public Builder logoUrl(@Nullable Output logoUrl) {
            $.logoUrl = logoUrl;
            return this;
        }

        /**
         * @param logoUrl Image URL for the logo shown in the app launcher dashboard.
         * 
         * @return builder
         * 
         */
        public Builder logoUrl(String logoUrl) {
            return logoUrl(Output.of(logoUrl));
        }

        /**
         * @param name Friendly name of the Access Application.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Friendly name of the Access Application.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param saasApp SaaS configuration for the Access Application.
         * 
         * @return builder
         * 
         */
        public Builder saasApp(@Nullable Output saasApp) {
            $.saasApp = saasApp;
            return this;
        }

        /**
         * @param saasApp SaaS configuration for the Access Application.
         * 
         * @return builder
         * 
         */
        public Builder saasApp(AccessApplicationSaasAppArgs saasApp) {
            return saasApp(Output.of(saasApp));
        }

        /**
         * @param sameSiteCookieAttribute Defines the same-site cookie setting for access tokens. Available values: `none`, `lax`, `strict`.
         * 
         * @return builder
         * 
         */
        public Builder sameSiteCookieAttribute(@Nullable Output sameSiteCookieAttribute) {
            $.sameSiteCookieAttribute = sameSiteCookieAttribute;
            return this;
        }

        /**
         * @param sameSiteCookieAttribute Defines the same-site cookie setting for access tokens. Available values: `none`, `lax`, `strict`.
         * 
         * @return builder
         * 
         */
        public Builder sameSiteCookieAttribute(String sameSiteCookieAttribute) {
            return sameSiteCookieAttribute(Output.of(sameSiteCookieAttribute));
        }

        /**
         * @param serviceAuth401Redirect Option to return a 401 status code in service authentication rules on failed requests. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder serviceAuth401Redirect(@Nullable Output serviceAuth401Redirect) {
            $.serviceAuth401Redirect = serviceAuth401Redirect;
            return this;
        }

        /**
         * @param serviceAuth401Redirect Option to return a 401 status code in service authentication rules on failed requests. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder serviceAuth401Redirect(Boolean serviceAuth401Redirect) {
            return serviceAuth401Redirect(Output.of(serviceAuth401Redirect));
        }

        /**
         * @param sessionDuration How often a user will be forced to re-authorise. Must be in the format `48h` or `2h45m`. Defaults to `24h`.
         * 
         * @return builder
         * 
         */
        public Builder sessionDuration(@Nullable Output sessionDuration) {
            $.sessionDuration = sessionDuration;
            return this;
        }

        /**
         * @param sessionDuration How often a user will be forced to re-authorise. Must be in the format `48h` or `2h45m`. Defaults to `24h`.
         * 
         * @return builder
         * 
         */
        public Builder sessionDuration(String sessionDuration) {
            return sessionDuration(Output.of(sessionDuration));
        }

        /**
         * @param skipInterstitial Option to skip the authorization interstitial when using the CLI. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder skipInterstitial(@Nullable Output skipInterstitial) {
            $.skipInterstitial = skipInterstitial;
            return this;
        }

        /**
         * @param skipInterstitial Option to skip the authorization interstitial when using the CLI. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder skipInterstitial(Boolean skipInterstitial) {
            return skipInterstitial(Output.of(skipInterstitial));
        }

        /**
         * @param type The application type. Available values: `app_launcher`, `bookmark`, `biso`, `dash_sso`, `saas`, `self_hosted`, `ssh`, `vnc`, `warp`. Defaults to `self_hosted`.
         * 
         * @return builder
         * 
         */
        public Builder type(@Nullable Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type The application type. Available values: `app_launcher`, `bookmark`, `biso`, `dash_sso`, `saas`, `self_hosted`, `ssh`, `vnc`, `warp`. Defaults to `self_hosted`.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        /**
         * @param zoneId The zone identifier to target for the resource. Conflicts with `account_id`.
         * 
         * @return builder
         * 
         */
        public Builder zoneId(@Nullable Output zoneId) {
            $.zoneId = zoneId;
            return this;
        }

        /**
         * @param zoneId The zone identifier to target for the resource. Conflicts with `account_id`.
         * 
         * @return builder
         * 
         */
        public Builder zoneId(String zoneId) {
            return zoneId(Output.of(zoneId));
        }

        public AccessApplicationArgs build() {
            $.name = Objects.requireNonNull($.name, "expected parameter 'name' to be non-null");
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy