Web App Args
A Google Cloud Firebase web application instance To get more information about WebApp, see:
How-to Guides
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}}
Properties
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.
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'
The user-assigned display name of the App.