WebAppArgs

data class WebAppArgs(val apiKeyId: Output<String>? = null, val deletionPolicy: Output<String>? = null, val displayName: Output<String>? = null, val project: Output<String>? = null) : ConvertibleToJava<WebAppArgs>

A Google Cloud Firebase web application instance To get more information about WebApp, see:

Example Usage

Firebase Web App Basic

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
import com.pulumi.gcp.firebase.Project;
import com.pulumi.gcp.firebase.ProjectArgs;
import com.pulumi.gcp.firebase.WebApp;
import com.pulumi.gcp.firebase.WebAppArgs;
import com.pulumi.gcp.firebase.FirebaseFunctions;
import com.pulumi.gcp.firebase.inputs.GetWebAppConfigArgs;
import com.pulumi.gcp.storage.Bucket;
import com.pulumi.gcp.storage.BucketArgs;
import com.pulumi.gcp.storage.BucketObject;
import com.pulumi.gcp.storage.BucketObjectArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var defaultProject = new Project("defaultProject", ProjectArgs.builder()
.projectId("my-project")
.orgId("123456789")
.labels(Map.of("firebase", "enabled"))
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var defaultFirebase_projectProject = new Project("defaultFirebase/projectProject", ProjectArgs.builder()
.project(defaultProject.projectId())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var basicWebApp = new WebApp("basicWebApp", WebAppArgs.builder()
.project(defaultProject.projectId())
.displayName("Display Name Basic")
.deletionPolicy("DELETE")
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.dependsOn(defaultFirebase / projectProject)
.build());
final var basicWebAppConfig = FirebaseFunctions.getWebAppConfig(GetWebAppConfigArgs.builder()
.webAppId(basicWebApp.appId())
.build());
var defaultBucket = new Bucket("defaultBucket", BucketArgs.builder()
.location("US")
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var defaultBucketObject = new BucketObject("defaultBucketObject", BucketObjectArgs.builder()
.bucket(defaultBucket.name())
.content(Output.tuple(basicWebApp.appId(), basicWebAppConfig.applyValue(getWebAppConfigResult -> getWebAppConfigResult), basicWebAppConfig.applyValue(getWebAppConfigResult -> getWebAppConfigResult), basicWebAppConfig.applyValue(getWebAppConfigResult -> getWebAppConfigResult)["database_url"], basicWebAppConfig.applyValue(getWebAppConfigResult -> getWebAppConfigResult)["storage_bucket"], basicWebAppConfig.applyValue(getWebAppConfigResult -> getWebAppConfigResult)["messaging_sender_id"], basicWebAppConfig.applyValue(getWebAppConfigResult -> getWebAppConfigResult)["measurement_id"]).applyValue(values -> {
var appId = values.t1;
var basicWebAppConfig = values.t2;
var basicWebAppConfig1 = values.t3;
var s = values.t4;
var s1 = values.t5;
var s2 = values.t6;
var s3 = values.t7;
return serializeJson(
jsonObject(
jsonProperty("appId", appId),
jsonProperty("apiKey", basicWebAppConfig.applyValue(getWebAppConfigResult -> getWebAppConfigResult.apiKey())),
jsonProperty("authDomain", basicWebAppConfig1.authDomain()),
jsonProperty("databaseURL", s),
jsonProperty("storageBucket", s1),
jsonProperty("messagingSenderId", s2),
jsonProperty("measurementId", s3)
));
}))
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Firebase Web App Custom Api Key

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.projects.ApiKey;
import com.pulumi.gcp.projects.ApiKeyArgs;
import com.pulumi.gcp.projects.inputs.ApiKeyRestrictionsArgs;
import com.pulumi.gcp.projects.inputs.ApiKeyRestrictionsBrowserKeyRestrictionsArgs;
import com.pulumi.gcp.firebase.WebApp;
import com.pulumi.gcp.firebase.WebAppArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var web = new ApiKey("web", ApiKeyArgs.builder()
.project("my-project-name")
.displayName("Display Name")
.restrictions(ApiKeyRestrictionsArgs.builder()
.browserKeyRestrictions(ApiKeyRestrictionsBrowserKeyRestrictionsArgs.builder()
.allowedReferrers("*")
.build())
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var default_ = new WebApp("default", WebAppArgs.builder()
.project("my-project-name")
.displayName("Display Name")
.apiKeyId(web.uid())
.deletionPolicy("DELETE")
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Import

WebApp can be imported using any of these accepted formats

$ pulumi import gcp:firebase/webApp:WebApp default {{project}} projects/{{project}}/webApps/{{app_id}}
$ pulumi import gcp:firebase/webApp:WebApp default projects/{{project}}/webApps/{{app_id}}
$ pulumi import gcp:firebase/webApp:WebApp default {{project}}/{{project}}/{{app_id}}
$ pulumi import gcp:firebase/webApp:WebApp default webApps/{{app_id}}
$ pulumi import gcp:firebase/webApp:WebApp default {{app_id}}

Constructors

Link copied to clipboard
constructor(apiKeyId: Output<String>? = null, deletionPolicy: Output<String>? = null, displayName: Output<String>? = null, project: Output<String>? = null)

Properties

Link copied to clipboard
val apiKeyId: Output<String>? = null

The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the WebApp. If apiKeyId is not set during creation, then Firebase automatically associates an apiKeyId with the WebApp. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned.

Link copied to clipboard
val deletionPolicy: Output<String>? = null

Set to 'ABANDON' to allow the WebApp to be untracked from terraform state rather than deleted upon 'terraform destroy'. This is useful becaue the WebApp may be serving traffic. Set to 'DELETE' to delete the WebApp. Default to 'ABANDON'

Link copied to clipboard
val displayName: Output<String>? = null

The user-assigned display name of the App.

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Functions

Link copied to clipboard
open override fun toJava(): WebAppArgs