AppCheckDeviceCheckConfigArgs

data class AppCheckDeviceCheckConfigArgs(val appId: Output<String>? = null, val keyId: Output<String>? = null, val privateKey: Output<String>? = null, val project: Output<String>? = null, val tokenTtl: Output<String>? = null) : ConvertibleToJava<AppCheckDeviceCheckConfigArgs>

An app's DeviceCheck configuration object. Note that the Team ID registered with your app is used as part of the validation process. Make sure your gcp.firebase.AppleApp has a team_id present. To get more information about DeviceCheckConfig, see:

Example Usage

Firebase App Check Device Check Config Full

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as std from "@pulumi/std";
import * as time from "@pulumi/time";
const _default = new gcp.firebase.AppleApp("default", {
project: "my-project-name",
displayName: "Apple app",
bundleId: "bundle.id.devicecheck",
teamId: "9987654321",
});
// It takes a while for App Check to recognize the new app
// If your app already exists, you don't have to wait 30 seconds.
const wait30s = new time.index.Sleep("wait_30s", {createDuration: "30s"}, {
dependsOn: [_default],
});
const defaultAppCheckDeviceCheckConfig = new gcp.firebase.AppCheckDeviceCheckConfig("default", {
project: "my-project-name",
appId: _default.appId,
tokenTtl: "7200s",
keyId: "Key ID",
privateKey: std.file({
input: "path/to/private-key.p8",
}).then(invoke => invoke.result),
}, {
dependsOn: [wait30s],
});
import pulumi
import pulumi_gcp as gcp
import pulumi_std as std
import pulumi_time as time
default = gcp.firebase.AppleApp("default",
project="my-project-name",
display_name="Apple app",
bundle_id="bundle.id.devicecheck",
team_id="9987654321")
# It takes a while for App Check to recognize the new app
# If your app already exists, you don't have to wait 30 seconds.
wait30s = time.index.Sleep("wait_30s", create_duration=30s,
opts = pulumi.ResourceOptions(depends_on=[default]))
default_app_check_device_check_config = gcp.firebase.AppCheckDeviceCheckConfig("default",
project="my-project-name",
app_id=default.app_id,
token_ttl="7200s",
key_id="Key ID",
private_key=std.file(input="path/to/private-key.p8").result,
opts = pulumi.ResourceOptions(depends_on=[wait30s]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Std = Pulumi.Std;
using Time = Pulumi.Time;
return await Deployment.RunAsync(() =>
{
var @default = new Gcp.Firebase.AppleApp("default", new()
{
Project = "my-project-name",
DisplayName = "Apple app",
BundleId = "bundle.id.devicecheck",
TeamId = "9987654321",
});
// It takes a while for App Check to recognize the new app
// If your app already exists, you don't have to wait 30 seconds.
var wait30s = new Time.Index.Sleep("wait_30s", new()
{
CreateDuration = "30s",
}, new CustomResourceOptions
{
DependsOn =
{
@default,
},
});
var defaultAppCheckDeviceCheckConfig = new Gcp.Firebase.AppCheckDeviceCheckConfig("default", new()
{
Project = "my-project-name",
AppId = @default.AppId,
TokenTtl = "7200s",
KeyId = "Key ID",
PrivateKey = Std.File.Invoke(new()
{
Input = "path/to/private-key.p8",
}).Apply(invoke => invoke.Result),
}, new CustomResourceOptions
{
DependsOn =
{
wait30s,
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firebase"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi-time/sdk/go/time"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := firebase.NewAppleApp(ctx, "default", &firebase.AppleAppArgs{
Project: pulumi.String("my-project-name"),
DisplayName: pulumi.String("Apple app"),
BundleId: pulumi.String("bundle.id.devicecheck"),
TeamId: pulumi.String("9987654321"),
})
if err != nil {
return err
}
// It takes a while for App Check to recognize the new app
// If your app already exists, you don't have to wait 30 seconds.
wait30s, err := time.NewSleep(ctx, "wait_30s", &time.SleepArgs{
CreateDuration: "30s",
}, pulumi.DependsOn([]pulumi.Resource{
_default,
}))
if err != nil {
return err
}
invokeFile, err := std.File(ctx, &std.FileArgs{
Input: "path/to/private-key.p8",
}, nil)
if err != nil {
return err
}
_, err = firebase.NewAppCheckDeviceCheckConfig(ctx, "default", &firebase.AppCheckDeviceCheckConfigArgs{
Project: pulumi.String("my-project-name"),
AppId: _default.AppId,
TokenTtl: pulumi.String("7200s"),
KeyId: pulumi.String("Key ID"),
PrivateKey: pulumi.String(invokeFile.Result),
}, pulumi.DependsOn([]pulumi.Resource{
wait30s,
}))
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.firebase.AppleApp;
import com.pulumi.gcp.firebase.AppleAppArgs;
import com.pulumi.time.sleep;
import com.pulumi.time.SleepArgs;
import com.pulumi.gcp.firebase.AppCheckDeviceCheckConfig;
import com.pulumi.gcp.firebase.AppCheckDeviceCheckConfigArgs;
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 default_ = new AppleApp("default", AppleAppArgs.builder()
.project("my-project-name")
.displayName("Apple app")
.bundleId("bundle.id.devicecheck")
.teamId("9987654321")
.build());
// It takes a while for App Check to recognize the new app
// If your app already exists, you don't have to wait 30 seconds.
var wait30s = new Sleep("wait30s", SleepArgs.builder()
.createDuration("30s")
.build(), CustomResourceOptions.builder()
.dependsOn(default_)
.build());
var defaultAppCheckDeviceCheckConfig = new AppCheckDeviceCheckConfig("defaultAppCheckDeviceCheckConfig", AppCheckDeviceCheckConfigArgs.builder()
.project("my-project-name")
.appId(default_.appId())
.tokenTtl("7200s")
.keyId("Key ID")
.privateKey(StdFunctions.file(FileArgs.builder()
.input("path/to/private-key.p8")
.build()).result())
.build(), CustomResourceOptions.builder()
.dependsOn(wait30s)
.build());
}
}
resources:
default:
type: gcp:firebase:AppleApp
properties:
project: my-project-name
displayName: Apple app
bundleId: bundle.id.devicecheck
teamId: '9987654321'
# It takes a while for App Check to recognize the new app
# If your app already exists, you don't have to wait 30 seconds.
wait30s:
type: time:sleep
name: wait_30s
properties:
createDuration: 30s
options:
dependson:
- ${default}
defaultAppCheckDeviceCheckConfig:
type: gcp:firebase:AppCheckDeviceCheckConfig
name: default
properties:
project: my-project-name
appId: ${default.appId}
tokenTtl: 7200s
keyId: Key ID
privateKey:
fn::invoke:
Function: std:file
Arguments:
input: path/to/private-key.p8
Return: result
options:
dependson:
- ${wait30s}

Import

DeviceCheckConfig can be imported using any of these accepted formats:

  • projects/{{project}}/apps/{{app_id}}/deviceCheckConfig

  • {{project}}/{{app_id}}

  • {{app_id}} When using the pulumi import command, DeviceCheckConfig can be imported using one of the formats above. For example:

$ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default projects/{{project}}/apps/{{app_id}}/deviceCheckConfig
$ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default {{project}}/{{app_id}}
$ pulumi import gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig default {{app_id}}

Constructors

Link copied to clipboard
constructor(appId: Output<String>? = null, keyId: Output<String>? = null, privateKey: Output<String>? = null, project: Output<String>? = null, tokenTtl: Output<String>? = null)

Properties

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

The ID of an Apple App.

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

The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.

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

The contents of the private key (.p8) file associated with the key specified by keyId. Note: This property is sensitive and will not be displayed in the plan.

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.

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

Specifies the duration for which App Check tokens exchanged from DeviceCheck artifacts will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

Functions

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