Class 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}} ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • 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()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.