Package com.pulumi.gcp.datafusion
Class Instance
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.gcp.datafusion.Instance
-
public class Instance extends com.pulumi.resources.CustomResource
Represents a Data Fusion instance. To get more information about Instance, see: * [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances) * How-to Guides * [Official Documentation](https://cloud.google.com/data-fusion/docs/) ## Example Usage ### Data Fusion Instance Basic ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.datafusion.Instance; import com.pulumi.gcp.datafusion.InstanceArgs; 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 basicInstance = new Instance("basicInstance", InstanceArgs.builder() .region("us-central1") .type("BASIC") .build()); } } ``` ### Data Fusion Instance Full ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.appengine.AppengineFunctions; import com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs; import com.pulumi.gcp.compute.Network; import com.pulumi.gcp.compute.GlobalAddress; import com.pulumi.gcp.compute.GlobalAddressArgs; import com.pulumi.gcp.datafusion.Instance; import com.pulumi.gcp.datafusion.InstanceArgs; import com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs; import com.pulumi.gcp.datafusion.inputs.InstanceAcceleratorArgs; 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 default = AppengineFunctions.getDefaultServiceAccount(); var network = new Network("network"); var privateIpAlloc = new GlobalAddress("privateIpAlloc", GlobalAddressArgs.builder() .addressType("INTERNAL") .purpose("VPC_PEERING") .prefixLength(22) .network(network.id()) .build()); var extendedInstance = new Instance("extendedInstance", InstanceArgs.builder() .description("My Data Fusion instance") .displayName("My Data Fusion instance") .region("us-central1") .type("BASIC") .enableStackdriverLogging(true) .enableStackdriverMonitoring(true) .privateInstance(true) .dataprocServiceAccount(default_.email()) .labels(Map.of("example_key", "example_value")) .networkConfig(InstanceNetworkConfigArgs.builder() .network("default") .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -> { var address = values.t1; var prefixLength = values.t2; return String.format("%s/%s", address,prefixLength); })) .build()) .accelerators(InstanceAcceleratorArgs.builder() .acceleratorType("CDC") .state("ENABLED") .build()) .build()); } } ``` ### Data Fusion Instance Cmek ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.kms.KeyRing; import com.pulumi.gcp.kms.KeyRingArgs; import com.pulumi.gcp.kms.CryptoKey; import com.pulumi.gcp.kms.CryptoKeyArgs; import com.pulumi.gcp.organizations.OrganizationsFunctions; import com.pulumi.gcp.organizations.inputs.GetProjectArgs; import com.pulumi.gcp.kms.CryptoKeyIAMBinding; import com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs; import com.pulumi.gcp.datafusion.Instance; import com.pulumi.gcp.datafusion.InstanceArgs; import com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs; 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 keyRing = new KeyRing("keyRing", KeyRingArgs.builder() .location("us-central1") .build()); var cryptoKey = new CryptoKey("cryptoKey", CryptoKeyArgs.builder() .keyRing(keyRing.id()) .build()); final var project = OrganizationsFunctions.getProject(); var cryptoKeyBinding = new CryptoKeyIAMBinding("cryptoKeyBinding", CryptoKeyIAMBindingArgs.builder() .cryptoKeyId(cryptoKey.id()) .role("roles/cloudkms.cryptoKeyEncrypterDecrypter") .members(String.format("serviceAccount:service-%[email protected]", project.applyValue(getProjectResult -> getProjectResult.number()))) .build()); var cmek = new Instance("cmek", InstanceArgs.builder() .region("us-central1") .type("BASIC") .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder() .keyReference(cryptoKey.id()) .build()) .build(), CustomResourceOptions.builder() .dependsOn(cryptoKeyBinding) .build()); } } ``` ### Data Fusion Instance Enterprise ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.datafusion.Instance; import com.pulumi.gcp.datafusion.InstanceArgs; 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 enterpriseInstance = new Instance("enterpriseInstance", InstanceArgs.builder() .enableRbac(true) .region("us-central1") .type("ENTERPRISE") .build()); } } ``` ### Data Fusion Instance Event ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.pubsub.Topic; import com.pulumi.gcp.datafusion.Instance; import com.pulumi.gcp.datafusion.InstanceArgs; import com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs; 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 eventTopic = new Topic("eventTopic"); var eventInstance = new Instance("eventInstance", InstanceArgs.builder() .region("us-central1") .type("BASIC") .eventPublishConfig(InstanceEventPublishConfigArgs.builder() .enabled(true) .topic(eventTopic.id()) .build()) .build()); } } ``` ### Data Fusion Instance Zone ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.gcp.datafusion.Instance; import com.pulumi.gcp.datafusion.InstanceArgs; 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 zone = new Instance("zone", InstanceArgs.builder() .region("us-central1") .type("DEVELOPER") .zone("us-central1-a") .build()); } } ``` ## Import Instance can be imported using any of these accepted formats ```sh $ pulumi import gcp:datafusion/instance:Instance default projects/{{project}}/locations/{{region}}/instances/{{name}} ``` ```sh $ pulumi import gcp:datafusion/instance:Instance default {{project}}/{{region}}/{{name}} ``` ```sh $ pulumi import gcp:datafusion/instance:Instance default {{region}}/{{name}} ``` ```sh $ pulumi import gcp:datafusion/instance:Instance default {{name}} ```
-
-
Constructor Summary
Constructors Constructor Description Instance(java.lang.String name)
Instance(java.lang.String name, InstanceArgs args)
Instance(java.lang.String name, InstanceArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<java.util.List<InstanceAccelerator>>>
accelerators()
com.pulumi.core.Output<java.lang.String>
apiEndpoint()
com.pulumi.core.Output<java.lang.String>
createTime()
com.pulumi.core.Output<java.util.Optional<InstanceCryptoKeyConfig>>
cryptoKeyConfig()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
dataprocServiceAccount()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
description()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
displayName()
com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>
enableRbac()
com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>
enableStackdriverLogging()
com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>
enableStackdriverMonitoring()
com.pulumi.core.Output<java.util.Optional<InstanceEventPublishConfig>>
eventPublishConfig()
com.pulumi.core.Output<java.lang.String>
gcsBucket()
static Instance
get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, InstanceState state, com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>
labels()
com.pulumi.core.Output<java.lang.String>
name()
com.pulumi.core.Output<java.util.Optional<InstanceNetworkConfig>>
networkConfig()
com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>
options()
com.pulumi.core.Output<java.lang.String>
p4ServiceAccount()
com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>
privateInstance()
com.pulumi.core.Output<java.lang.String>
project()
com.pulumi.core.Output<java.lang.String>
region()
com.pulumi.core.Output<java.lang.String>
serviceAccount()
com.pulumi.core.Output<java.lang.String>
serviceEndpoint()
com.pulumi.core.Output<java.lang.String>
state()
com.pulumi.core.Output<java.lang.String>
stateMessage()
com.pulumi.core.Output<java.lang.String>
tenantProjectId()
com.pulumi.core.Output<java.lang.String>
type()
com.pulumi.core.Output<java.lang.String>
updateTime()
com.pulumi.core.Output<java.lang.String>
version()
com.pulumi.core.Output<java.lang.String>
zone()
-
-
-
Constructor Detail
-
Instance
public Instance(java.lang.String name)
- Parameters:
name
- The _unique_ name of the resulting resource.
-
Instance
public Instance(java.lang.String name, InstanceArgs args)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.
-
Instance
public Instance(java.lang.String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.options
- A bag of options that control this resource's behavior.
-
-
Method Detail
-
accelerators
public com.pulumi.core.Output<java.util.Optional<java.util.List<InstanceAccelerator>>> accelerators()
- Returns:
- List of accelerators enabled for this CDF instance. If accelerators are enabled it is possible a permadiff will be created with the Options field. Users will need to either manually update their state file to include these diffed options, or include the field in a [lifecycle ignore changes block](https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#ignore_changes).
-
apiEndpoint
public com.pulumi.core.Output<java.lang.String> apiEndpoint()
- Returns:
- Endpoint on which the REST APIs is accessible.
-
createTime
public com.pulumi.core.Output<java.lang.String> createTime()
- Returns:
- The time the instance was created in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
-
cryptoKeyConfig
public com.pulumi.core.Output<java.util.Optional<InstanceCryptoKeyConfig>> cryptoKeyConfig()
- Returns:
- The crypto key configuration. This field is used by the Customer-Managed Encryption Keys (CMEK) feature. Structure is documented below.
-
dataprocServiceAccount
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> dataprocServiceAccount()
- Returns:
- User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines.
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- An optional description of the instance.
-
displayName
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> displayName()
- Returns:
- Display name for an instance.
-
enableRbac
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableRbac()
- Returns:
- Option to enable granular role-based access control.
-
enableStackdriverLogging
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableStackdriverLogging()
- Returns:
- Option to enable Stackdriver Logging.
-
enableStackdriverMonitoring
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableStackdriverMonitoring()
- Returns:
- Option to enable Stackdriver Monitoring.
-
eventPublishConfig
public com.pulumi.core.Output<java.util.Optional<InstanceEventPublishConfig>> eventPublishConfig()
- Returns:
- Option to enable and pass metadata for event publishing. Structure is documented below.
-
gcsBucket
public com.pulumi.core.Output<java.lang.String> gcsBucket()
- Returns:
- Cloud Storage bucket generated by Data Fusion in the customer project.
-
labels
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> labels()
- Returns:
- The resource labels for instance to use to annotate any related underlying resources, such as Compute Engine VMs.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- The ID of the instance or a fully qualified identifier for the instance.
-
networkConfig
public com.pulumi.core.Output<java.util.Optional<InstanceNetworkConfig>> networkConfig()
- Returns:
- Network configuration options. These are required when a private Data Fusion instance is to be created. Structure is documented below.
-
options
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> options()
- Returns:
- Map of additional options used to configure the behavior of Data Fusion instance.
-
p4ServiceAccount
public com.pulumi.core.Output<java.lang.String> p4ServiceAccount()
- Returns:
- P4 service account for the customer project.
-
privateInstance
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> privateInstance()
- Returns:
- Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.
-
project
public com.pulumi.core.Output<java.lang.String> project()
- Returns:
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- The region of the Data Fusion instance.
-
serviceAccount
public com.pulumi.core.Output<java.lang.String> serviceAccount()
- Returns:
- Service account which will be used to access resources in the customer project.
-
serviceEndpoint
public com.pulumi.core.Output<java.lang.String> serviceEndpoint()
- Returns:
- Endpoint on which the Data Fusion UI and REST APIs are accessible.
-
state
public com.pulumi.core.Output<java.lang.String> state()
- Returns:
- The type of an accelator for a CDF instance. Possible values are: `ENABLED`, `DISABLED`.
-
stateMessage
public com.pulumi.core.Output<java.lang.String> stateMessage()
- Returns:
- Additional information about the current state of this Data Fusion instance if available.
-
tenantProjectId
public com.pulumi.core.Output<java.lang.String> tenantProjectId()
- Returns:
- The name of the tenant project.
-
type
public com.pulumi.core.Output<java.lang.String> type()
- Returns:
- Represents the type of Data Fusion instance. Each type is configured with the default settings for processing and memory. - BASIC: Basic Data Fusion instance. In Basic type, the user will be able to create data pipelines using point and click UI. However, there are certain limitations, such as fewer number of concurrent pipelines, no support for streaming pipelines, etc. - ENTERPRISE: Enterprise Data Fusion instance. In Enterprise type, the user will have more features available, such as support for streaming pipelines, higher number of concurrent pipelines, etc. - DEVELOPER: Developer Data Fusion instance. In Developer type, the user will have all features available but with restrictive capabilities. This is to help enterprises design and develop their data ingestion and integration pipelines at low cost. Possible values are: `BASIC`, `ENTERPRISE`, `DEVELOPER`. ***
-
updateTime
public com.pulumi.core.Output<java.lang.String> updateTime()
- Returns:
- The time the instance was last updated in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
-
version
public com.pulumi.core.Output<java.lang.String> version()
- Returns:
- Current version of the Data Fusion.
-
zone
public com.pulumi.core.Output<java.lang.String> zone()
- Returns:
- Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.
-
get
public static Instance get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name
- The _unique_ name of the resulting resource.id
- The _unique_ provider ID of the resource to lookup.state
-options
- Optional settings to control the behavior of the CustomResource.
-
-