Package com.pulumi.aws.redshift
Class NamespaceRegistration
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.redshift.NamespaceRegistration
-
public class NamespaceRegistration extends com.pulumi.resources.CustomResourceManages an Amazon Redshift namespace registration to the AWS Glue Data Catalog. Use this resource to enable access to a Redshift data warehouse using the Apache Iceberg REST API. > **NOTE:** This resource has limited drift detection capabilities. AWS does not provide a reliable API to verify registration status after creation. The resource verifies that the underlying cluster or namespace exists and that an internal data share was created, but cannot detect if the registration was removed outside of Terraform. ## Example Usage ### Serverless Namespace
### Provisioned Clusterpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetCallerIdentityArgs; import com.pulumi.aws.redshiftserverless.Namespace; import com.pulumi.aws.redshiftserverless.NamespaceArgs; import com.pulumi.aws.redshiftserverless.Workgroup; import com.pulumi.aws.redshiftserverless.WorkgroupArgs; import com.pulumi.aws.redshift.NamespaceRegistration; import com.pulumi.aws.redshift.NamespaceRegistrationArgs; import com.pulumi.std.StdFunctions; import com.pulumi.std.inputs.FormatArgs; import java.util.ArrayList; import java.util.Arrays; 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 current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); var example = new Namespace("example", NamespaceArgs.builder() .namespaceName("example") .dbName("example") .build()); var exampleWorkgroup = new Workgroup("exampleWorkgroup", WorkgroupArgs.builder() .namespaceName(example.namespaceName()) .workgroupName("example") .build()); var exampleNamespaceRegistration = new NamespaceRegistration("exampleNamespaceRegistration", NamespaceRegistrationArgs.builder() .consumerIdentifier(StdFunctions.format(FormatArgs.builder() .input("DataCatalog/%s") .args(current.accountId()) .build()).result()) .namespaceType("serverless") .serverlessNamespaceIdentifier(example.namespaceName()) .serverlessWorkgroupIdentifier(exampleWorkgroup.workgroupName()) .build()); } }
## Import For provisioned clusters: ### Identity Schema #### Required - `consumerIdentifier` (String) Consumer identifier for the registration. - `namespaceType` (String) Type of namespace being registered. Valid values: `serverless`, `provisioned`. #### Optional - `accountId` (String) AWS Account where this resource is managed. - `provisionedClusterIdentifier` (String) Identifier of the provisioned cluster. Required when `namespaceType` is `provisioned`. - `region` (String) Region where this resource is managed. - `serverlessNamespaceIdentifier` (String) Identifier of the serverless namespace. Required when `namespaceType` is `serverless`. - `serverlessWorkgroupIdentifier` (String) Identifier of the serverless workgroup. Required when `namespaceType` is `serverless`. For provisioned clusters: Using `pulumi import`, import Redshift Namespace Registration using the composite ID. For example: For serverless namespaces: ```sh $ pulumi import aws:redshift/namespaceRegistration:NamespaceRegistration example DataCatalog/123456789012,example-namespace,example-workgroup ``` For provisioned clusters: ```sh $ pulumi import aws:redshift/namespaceRegistration:NamespaceRegistration example DataCatalog/123456789012,example-cluster ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetCallerIdentityArgs; import com.pulumi.aws.redshift.Cluster; import com.pulumi.aws.redshift.ClusterArgs; import com.pulumi.aws.redshift.NamespaceRegistration; import com.pulumi.aws.redshift.NamespaceRegistrationArgs; import com.pulumi.std.StdFunctions; import com.pulumi.std.inputs.FormatArgs; import java.util.ArrayList; import java.util.Arrays; 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 current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); var example = new Cluster("example", ClusterArgs.builder() .clusterIdentifier("example") .databaseName("example") .masterUsername("exampleuser") .masterPassword("ExamplePassword123!") .nodeType("dc2.large") .clusterType("single-node") .build()); var exampleNamespaceRegistration = new NamespaceRegistration("exampleNamespaceRegistration", NamespaceRegistrationArgs.builder() .consumerIdentifier(StdFunctions.format(FormatArgs.builder() .input("DataCatalog/%s") .args(current.accountId()) .build()).result()) .namespaceType("provisioned") .provisionedClusterIdentifier(example.clusterIdentifier()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description NamespaceRegistration(java.lang.String name)NamespaceRegistration(java.lang.String name, NamespaceRegistrationArgs args)NamespaceRegistration(java.lang.String name, NamespaceRegistrationArgs 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.lang.String>consumerIdentifier()static NamespaceRegistrationget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, NamespaceRegistrationState 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.lang.String>namespaceType()com.pulumi.core.Output<java.util.Optional<java.lang.String>>provisionedClusterIdentifier()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.lang.String>>serverlessNamespaceIdentifier()com.pulumi.core.Output<java.util.Optional<java.lang.String>>serverlessWorkgroupIdentifier()
-
-
-
Constructor Detail
-
NamespaceRegistration
public NamespaceRegistration(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
NamespaceRegistration
public NamespaceRegistration(java.lang.String name, NamespaceRegistrationArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
NamespaceRegistration
public NamespaceRegistration(java.lang.String name, NamespaceRegistrationArgs 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
-
consumerIdentifier
public com.pulumi.core.Output<java.lang.String> consumerIdentifier()
- Returns:
- Consumer identifier for the registration. Typically in the format `DataCatalog/<account-id>`.
-
namespaceType
public com.pulumi.core.Output<java.lang.String> namespaceType()
- Returns:
- Type of namespace being registered. Valid values: `serverless`, `provisioned`. The following arguments are optional:
-
provisionedClusterIdentifier
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> provisionedClusterIdentifier()
- Returns:
- Identifier of the provisioned cluster. Required when `namespaceType` is `provisioned`.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
serverlessNamespaceIdentifier
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> serverlessNamespaceIdentifier()
- Returns:
- Identifier of the serverless namespace. Required when `namespaceType` is `serverless`. Can be either the namespace name or namespace ID (UUID).
-
serverlessWorkgroupIdentifier
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> serverlessWorkgroupIdentifier()
- Returns:
- Identifier of the serverless workgroup. Required when `namespaceType` is `serverless`.
-
get
public static NamespaceRegistration get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable NamespaceRegistrationState 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.
-
-