import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "./types"; /** * Provides a Cloudflare Access Application resource. Access Applications * are used to restrict access to a whole application using an * authorisation gateway managed by Cloudflare. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as cloudflare from "@pulumi/cloudflare"; * * // With CORS configuration * const stagingApp = new cloudflare.AccessApplication("staging_app", { * corsHeaders: [{ * allowCredentials: true, * allowedMethods: [ * "GET", * "POST", * "OPTIONS", * ], * allowedOrigins: ["https://example.com"], * maxAge: 10, * }], * domain: "staging.example.com", * name: "staging application", * sessionDuration: "24h", * type: "self_hosted", * zoneId: "1d5fdc9e88c8a8c4518b068cd94331fe", * }); * ``` * * ## Import * * Access Applications can be imported using a composite ID formed of account ID and application ID. * * ```sh * $ pulumi import cloudflare:index/accessApplication:AccessApplication staging cb029e245cfdd66dc8d2e570d5dd3322/d41d8cd98f00b204e9800998ecf8427e * ``` */ export declare class AccessApplication extends pulumi.CustomResource { /** * Get an existing AccessApplication resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: AccessApplicationState, opts?: pulumi.CustomResourceOptions): AccessApplication; /** * Returns true if the given object is an instance of AccessApplication. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is AccessApplication; /** * The account to which the access application should be added. Conflicts with `zoneId`. */ readonly accountId: pulumi.Output; /** * The identity providers selected for the application. */ readonly allowedIdps: pulumi.Output; /** * Option to show/hide applications in App Launcher. Defaults to `true`. */ readonly appLauncherVisible: pulumi.Output; /** * Application Audience (AUD) Tag of the application */ readonly aud: pulumi.Output; /** * Option to skip identity provider * selection if only one is configured in allowed_idps. Defaults to `false` * (disabled). */ readonly autoRedirectToIdentity: pulumi.Output; /** * CORS configuration for the Access Application. See * below for reference structure. */ readonly corsHeaders: pulumi.Output; /** * Option that returns a custom error message when a user is denied access to the application. */ readonly customDenyMessage: pulumi.Output; /** * Option that redirects to a custom URL when a user is denied access to the application. */ readonly customDenyUrl: pulumi.Output; /** * The complete URL of the asset you wish to put * Cloudflare Access in front of. Can include subdomains or paths. Or both. */ readonly domain: pulumi.Output; /** * Option to provide increased security against compromised authorization tokens and CSRF attacks by requiring an additional "binding" cookie on requests. Defaults to `false`. */ readonly enableBindingCookie: pulumi.Output; /** * Option to add the `HttpOnly` cookie flag to access tokens. Defaults to `true`. */ readonly httpOnlyCookieAttribute: pulumi.Output; /** * Image URL for the logo shown in the app launcher * dashboard. */ readonly logoUrl: pulumi.Output; /** * Friendly name of the Access Application. */ readonly name: pulumi.Output; /** * Defines the same-site cookie setting * for access tokens. Valid values are `none`, `lax`, and `strict`. */ readonly sameSiteCookieAttribute: pulumi.Output; /** * Option to return a 401 status code in * service authentication rules on failed requests. */ readonly serviceAuth401Redirect: pulumi.Output; /** * How often a user will be forced to * re-authorise. Must be in the format `"48h"` or `"2h45m"`. * Valid time units are `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`. Defaults to `24h`. */ readonly sessionDuration: pulumi.Output; /** * Option to skip the authorization interstitial * when using the CLI. */ readonly skipInterstitial: pulumi.Output; /** * The application type. Defaults to `selfHosted`. Valid * values are `selfHosted`, `ssh`, `vnc`, `file` or `bookmark`. */ readonly type: pulumi.Output; /** * The DNS zone to which the access application should be added. Conflicts with `accountId`. */ readonly zoneId: pulumi.Output; /** * Create a AccessApplication resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: AccessApplicationArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering AccessApplication resources. */ export interface AccessApplicationState { /** * The account to which the access application should be added. Conflicts with `zoneId`. */ accountId?: pulumi.Input; /** * The identity providers selected for the application. */ allowedIdps?: pulumi.Input[]>; /** * Option to show/hide applications in App Launcher. Defaults to `true`. */ appLauncherVisible?: pulumi.Input; /** * Application Audience (AUD) Tag of the application */ aud?: pulumi.Input; /** * Option to skip identity provider * selection if only one is configured in allowed_idps. Defaults to `false` * (disabled). */ autoRedirectToIdentity?: pulumi.Input; /** * CORS configuration for the Access Application. See * below for reference structure. */ corsHeaders?: pulumi.Input[]>; /** * Option that returns a custom error message when a user is denied access to the application. */ customDenyMessage?: pulumi.Input; /** * Option that redirects to a custom URL when a user is denied access to the application. */ customDenyUrl?: pulumi.Input; /** * The complete URL of the asset you wish to put * Cloudflare Access in front of. Can include subdomains or paths. Or both. */ domain?: pulumi.Input; /** * Option to provide increased security against compromised authorization tokens and CSRF attacks by requiring an additional "binding" cookie on requests. Defaults to `false`. */ enableBindingCookie?: pulumi.Input; /** * Option to add the `HttpOnly` cookie flag to access tokens. Defaults to `true`. */ httpOnlyCookieAttribute?: pulumi.Input; /** * Image URL for the logo shown in the app launcher * dashboard. */ logoUrl?: pulumi.Input; /** * Friendly name of the Access Application. */ name?: pulumi.Input; /** * Defines the same-site cookie setting * for access tokens. Valid values are `none`, `lax`, and `strict`. */ sameSiteCookieAttribute?: pulumi.Input; /** * Option to return a 401 status code in * service authentication rules on failed requests. */ serviceAuth401Redirect?: pulumi.Input; /** * How often a user will be forced to * re-authorise. Must be in the format `"48h"` or `"2h45m"`. * Valid time units are `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`. Defaults to `24h`. */ sessionDuration?: pulumi.Input; /** * Option to skip the authorization interstitial * when using the CLI. */ skipInterstitial?: pulumi.Input; /** * The application type. Defaults to `selfHosted`. Valid * values are `selfHosted`, `ssh`, `vnc`, `file` or `bookmark`. */ type?: pulumi.Input; /** * The DNS zone to which the access application should be added. Conflicts with `accountId`. */ zoneId?: pulumi.Input; } /** * The set of arguments for constructing a AccessApplication resource. */ export interface AccessApplicationArgs { /** * The account to which the access application should be added. Conflicts with `zoneId`. */ accountId?: pulumi.Input; /** * The identity providers selected for the application. */ allowedIdps?: pulumi.Input[]>; /** * Option to show/hide applications in App Launcher. Defaults to `true`. */ appLauncherVisible?: pulumi.Input; /** * Option to skip identity provider * selection if only one is configured in allowed_idps. Defaults to `false` * (disabled). */ autoRedirectToIdentity?: pulumi.Input; /** * CORS configuration for the Access Application. See * below for reference structure. */ corsHeaders?: pulumi.Input[]>; /** * Option that returns a custom error message when a user is denied access to the application. */ customDenyMessage?: pulumi.Input; /** * Option that redirects to a custom URL when a user is denied access to the application. */ customDenyUrl?: pulumi.Input; /** * The complete URL of the asset you wish to put * Cloudflare Access in front of. Can include subdomains or paths. Or both. */ domain: pulumi.Input; /** * Option to provide increased security against compromised authorization tokens and CSRF attacks by requiring an additional "binding" cookie on requests. Defaults to `false`. */ enableBindingCookie?: pulumi.Input; /** * Option to add the `HttpOnly` cookie flag to access tokens. Defaults to `true`. */ httpOnlyCookieAttribute?: pulumi.Input; /** * Image URL for the logo shown in the app launcher * dashboard. */ logoUrl?: pulumi.Input; /** * Friendly name of the Access Application. */ name: pulumi.Input; /** * Defines the same-site cookie setting * for access tokens. Valid values are `none`, `lax`, and `strict`. */ sameSiteCookieAttribute?: pulumi.Input; /** * Option to return a 401 status code in * service authentication rules on failed requests. */ serviceAuth401Redirect?: pulumi.Input; /** * How often a user will be forced to * re-authorise. Must be in the format `"48h"` or `"2h45m"`. * Valid time units are `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`. Defaults to `24h`. */ sessionDuration?: pulumi.Input; /** * Option to skip the authorization interstitial * when using the CLI. */ skipInterstitial?: pulumi.Input; /** * The application type. Defaults to `selfHosted`. Valid * values are `selfHosted`, `ssh`, `vnc`, `file` or `bookmark`. */ type?: pulumi.Input; /** * The DNS zone to which the access application should be added. Conflicts with `accountId`. */ zoneId?: pulumi.Input; }