Instance

class Instance : KotlinCustomResource

A Google Cloud Looker instance. To get more information about Instance, see:

Example Usage

Looker Instance Basic

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.looker.Instance;
import com.pulumi.gcp.looker.InstanceArgs;
import com.pulumi.gcp.looker.inputs.InstanceOauthConfigArgs;
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 looker_instance = new Instance("looker-instance", InstanceArgs.builder()
.oauthConfig(InstanceOauthConfigArgs.builder()
.clientId("my-client-id")
.clientSecret("my-client-secret")
.build())
.platformEdition("LOOKER_CORE_STANDARD")
.region("us-central1")
.build());
}
}

Looker Instance Full

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.looker.Instance;
import com.pulumi.gcp.looker.InstanceArgs;
import com.pulumi.gcp.looker.inputs.InstanceAdminSettingsArgs;
import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodArgs;
import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodEndDateArgs;
import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodStartDateArgs;
import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodTimeArgs;
import com.pulumi.gcp.looker.inputs.InstanceMaintenanceWindowArgs;
import com.pulumi.gcp.looker.inputs.InstanceMaintenanceWindowStartTimeArgs;
import com.pulumi.gcp.looker.inputs.InstanceOauthConfigArgs;
import com.pulumi.gcp.looker.inputs.InstanceUserMetadataArgs;
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 looker_instance = new Instance("looker-instance", InstanceArgs.builder()
.adminSettings(InstanceAdminSettingsArgs.builder()
.allowedEmailDomains("google.com")
.build())
.denyMaintenancePeriod(InstanceDenyMaintenancePeriodArgs.builder()
.endDate(InstanceDenyMaintenancePeriodEndDateArgs.builder()
.day(1)
.month(2)
.year(2050)
.build())
.startDate(InstanceDenyMaintenancePeriodStartDateArgs.builder()
.day(1)
.month(1)
.year(2050)
.build())
.time(InstanceDenyMaintenancePeriodTimeArgs.builder()
.hours(10)
.minutes(0)
.nanos(0)
.seconds(0)
.build())
.build())
.maintenanceWindow(InstanceMaintenanceWindowArgs.builder()
.dayOfWeek("THURSDAY")
.startTime(InstanceMaintenanceWindowStartTimeArgs.builder()
.hours(22)
.minutes(0)
.nanos(0)
.seconds(0)
.build())
.build())
.oauthConfig(InstanceOauthConfigArgs.builder()
.clientId("my-client-id")
.clientSecret("my-client-secret")
.build())
.platformEdition("LOOKER_CORE_STANDARD")
.publicIpEnabled(true)
.region("us-central1")
.userMetadata(InstanceUserMetadataArgs.builder()
.additionalDeveloperUserCount(10)
.additionalStandardUserCount(10)
.additionalViewerUserCount(10)
.build())
.build());
}
}

Looker Instance Enterprise Full

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetNetworkArgs;
import com.pulumi.gcp.compute.GlobalAddress;
import com.pulumi.gcp.compute.GlobalAddressArgs;
import com.pulumi.gcp.servicenetworking.Connection;
import com.pulumi.gcp.servicenetworking.ConnectionArgs;
import com.pulumi.gcp.looker.Instance;
import com.pulumi.gcp.looker.InstanceArgs;
import com.pulumi.gcp.looker.inputs.InstanceAdminSettingsArgs;
import com.pulumi.gcp.looker.inputs.InstanceEncryptionConfigArgs;
import com.pulumi.gcp.looker.inputs.InstanceMaintenanceWindowArgs;
import com.pulumi.gcp.looker.inputs.InstanceMaintenanceWindowStartTimeArgs;
import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodArgs;
import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodStartDateArgs;
import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodEndDateArgs;
import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodTimeArgs;
import com.pulumi.gcp.looker.inputs.InstanceOauthConfigArgs;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.kms.CryptoKeyIAMMember;
import com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;
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) {
final var lookerNetwork = ComputeFunctions.getNetwork(GetNetworkArgs.builder()
.name("looker-network")
.build());
var lookerRange = new GlobalAddress("lookerRange", GlobalAddressArgs.builder()
.purpose("VPC_PEERING")
.addressType("INTERNAL")
.prefixLength(20)
.network(lookerNetwork.applyValue(getNetworkResult -> getNetworkResult.id()))
.build());
var lookerVpcConnection = new Connection("lookerVpcConnection", ConnectionArgs.builder()
.network(lookerNetwork.applyValue(getNetworkResult -> getNetworkResult.id()))
.service("servicenetworking.googleapis.com")
.reservedPeeringRanges(lookerRange.name())
.build());
var looker_instance = new Instance("looker-instance", InstanceArgs.builder()
.platformEdition("LOOKER_CORE_ENTERPRISE_ANNUAL")
.region("us-central1")
.privateIpEnabled(true)
.publicIpEnabled(false)
.reservedRange(lookerRange.name())
.consumerNetwork(lookerNetwork.applyValue(getNetworkResult -> getNetworkResult.id()))
.adminSettings(InstanceAdminSettingsArgs.builder()
.allowedEmailDomains("google.com")
.build())
.encryptionConfig(InstanceEncryptionConfigArgs.builder()
.kmsKeyName("looker-kms-key")
.build())
.maintenanceWindow(InstanceMaintenanceWindowArgs.builder()
.dayOfWeek("THURSDAY")
.startTime(InstanceMaintenanceWindowStartTimeArgs.builder()
.hours(22)
.minutes(0)
.seconds(0)
.nanos(0)
.build())
.build())
.denyMaintenancePeriod(InstanceDenyMaintenancePeriodArgs.builder()
.startDate(InstanceDenyMaintenancePeriodStartDateArgs.builder()
.year(2050)
.month(1)
.day(1)
.build())
.endDate(InstanceDenyMaintenancePeriodEndDateArgs.builder()
.year(2050)
.month(2)
.day(1)
.build())
.time(InstanceDenyMaintenancePeriodTimeArgs.builder()
.hours(10)
.minutes(0)
.seconds(0)
.nanos(0)
.build())
.build())
.oauthConfig(InstanceOauthConfigArgs.builder()
.clientId("my-client-id")
.clientSecret("my-client-secret")
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(lookerVpcConnection)
.build());
final var project = OrganizationsFunctions.getProject();
var cryptoKey = new CryptoKeyIAMMember("cryptoKey", CryptoKeyIAMMemberArgs.builder()
.cryptoKeyId("looker-kms-key")
.role("roles/cloudkms.cryptoKeyEncrypterDecrypter")
.member(String.format("serviceAccount:service-%s@gcp-sa-looker.iam.gserviceaccount.com", project.applyValue(getProjectResult -> getProjectResult.number())))
.build());
}
}

Import

Instance can be imported using any of these accepted formats

$ pulumi import gcp:looker/instance:Instance default projects/{{project}}/locations/{{region}}/instances/{{name}}
$ pulumi import gcp:looker/instance:Instance default {{project}}/{{region}}/{{name}}
$ pulumi import gcp:looker/instance:Instance default {{region}}/{{name}}
$ pulumi import gcp:looker/instance:Instance default {{name}}

Properties

Link copied to clipboard

Looker instance Admin settings. Structure is documented below.

Link copied to clipboard
val consumerNetwork: Output<String>?

Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance.

Link copied to clipboard
val createTime: Output<String>

The time the instance was created in RFC3339 UTC "Zulu" format, accurate to nanoseconds.

Link copied to clipboard

Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two deny maintenance periods. Structure is documented below.

Link copied to clipboard
val egressPublicIp: Output<String>

Public Egress IP (IPv4).

Link copied to clipboard

Looker instance encryption settings. Structure is documented below.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

Private Ingress IP (IPv4).

Link copied to clipboard
val ingressPublicIp: Output<String>

Public Ingress IP (IPv4).

Link copied to clipboard
val lookerUri: Output<String>

Looker instance URI which can be used to access the Looker Instance UI.

Link copied to clipboard
val lookerVersion: Output<String>

The Looker version that the instance is using.

Link copied to clipboard

Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your instance to be restarted during updates, which will temporarily disrupt service. Structure is documented below.

Link copied to clipboard
val name: Output<String>

The ID of the instance or a fully qualified identifier for the instance.

Link copied to clipboard

Looker Instance OAuth login settings. Structure is documented below.

Link copied to clipboard
val platformEdition: Output<String>?

Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values:

Link copied to clipboard

Whether private IP is enabled on the Looker instance.

Link copied to clipboard
val project: Output<String>

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 publicIpEnabled: Output<Boolean>?

Whether public IP is enabled on the Looker instance.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val region: Output<String>

The name of the Looker region of the instance.

Link copied to clipboard
val reservedRange: Output<String>?

Name of a reserved IP address range within the consumer network, to be used for private service access connection. User may or may not specify this in a request.

Link copied to clipboard
val updateTime: Output<String>

The time the instance was updated in RFC3339 UTC "Zulu" format, accurate to nanoseconds.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard

Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, Standard, and Developer. Structure is documented below.