github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/neptune/clusterInstance.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package neptune
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // A Cluster Instance Resource defines attributes that are specific to a single instance in a Neptune Cluster.
    16  //
    17  // You can simply add neptune instances and Neptune manages the replication. You can use the count
    18  // meta-parameter to make multiple instances and join them all to the same Neptune Cluster, or you may specify different Cluster Instance resources with various `instanceClass` sizes.
    19  //
    20  // ## Example Usage
    21  //
    22  // The following example will create a neptune cluster with two neptune instances(one writer and one reader).
    23  //
    24  // <!--Start PulumiCodeChooser -->
    25  // ```go
    26  // package main
    27  //
    28  // import (
    29  //
    30  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/neptune"
    31  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    32  //
    33  // )
    34  //
    35  //	func main() {
    36  //		pulumi.Run(func(ctx *pulumi.Context) error {
    37  //			_, err := neptune.NewCluster(ctx, "default", &neptune.ClusterArgs{
    38  //				ClusterIdentifier:                pulumi.String("neptune-cluster-demo"),
    39  //				Engine:                           pulumi.String("neptune"),
    40  //				BackupRetentionPeriod:            pulumi.Int(5),
    41  //				PreferredBackupWindow:            pulumi.String("07:00-09:00"),
    42  //				SkipFinalSnapshot:                pulumi.Bool(true),
    43  //				IamDatabaseAuthenticationEnabled: pulumi.Bool(true),
    44  //				ApplyImmediately:                 pulumi.Bool(true),
    45  //			})
    46  //			if err != nil {
    47  //				return err
    48  //			}
    49  //			var example []*neptune.ClusterInstance
    50  //			for index := 0; index < 2; index++ {
    51  //				key0 := index
    52  //				_ := index
    53  //				__res, err := neptune.NewClusterInstance(ctx, fmt.Sprintf("example-%v", key0), &neptune.ClusterInstanceArgs{
    54  //					ClusterIdentifier: _default.ID(),
    55  //					Engine:            pulumi.String("neptune"),
    56  //					InstanceClass:     pulumi.String("db.r4.large"),
    57  //					ApplyImmediately:  pulumi.Bool(true),
    58  //				})
    59  //				if err != nil {
    60  //					return err
    61  //				}
    62  //				example = append(example, __res)
    63  //			}
    64  //			return nil
    65  //		})
    66  //	}
    67  //
    68  // ```
    69  // <!--End PulumiCodeChooser -->
    70  //
    71  // ## Import
    72  //
    73  // Using `pulumi import`, import `aws_neptune_cluster_instance` using the instance identifier. For example:
    74  //
    75  // ```sh
    76  // $ pulumi import aws:neptune/clusterInstance:ClusterInstance example my-instance
    77  // ```
    78  type ClusterInstance struct {
    79  	pulumi.CustomResourceState
    80  
    81  	// The hostname of the instance. See also `endpoint` and `port`.
    82  	Address pulumi.StringOutput `pulumi:"address"`
    83  	// Specifies whether any instance modifications
    84  	// are applied immediately, or during the next maintenance window. Default is`false`.
    85  	ApplyImmediately pulumi.BoolOutput `pulumi:"applyImmediately"`
    86  	// Amazon Resource Name (ARN) of neptune instance
    87  	Arn pulumi.StringOutput `pulumi:"arn"`
    88  	// Indicates that minor engine upgrades will be applied automatically to the instance during the maintenance window. Default is `true`.
    89  	AutoMinorVersionUpgrade pulumi.BoolPtrOutput `pulumi:"autoMinorVersionUpgrade"`
    90  	// The EC2 Availability Zone that the neptune instance is created in.
    91  	AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"`
    92  	// The identifier of the `neptune.Cluster` in which to launch this instance.
    93  	ClusterIdentifier pulumi.StringOutput `pulumi:"clusterIdentifier"`
    94  	// The region-unique, immutable identifier for the neptune instance.
    95  	DbiResourceId pulumi.StringOutput `pulumi:"dbiResourceId"`
    96  	// The connection endpoint in `address:port` format.
    97  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
    98  	// The name of the database engine to be used for the neptune instance. Defaults to `neptune`. Valid Values: `neptune`.
    99  	Engine pulumi.StringPtrOutput `pulumi:"engine"`
   100  	// The neptune engine version. Currently configuring this argumnet has no effect.
   101  	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
   102  	// The identifier for the neptune instance, if omitted, this provider will assign a random, unique identifier.
   103  	Identifier pulumi.StringOutput `pulumi:"identifier"`
   104  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   105  	IdentifierPrefix pulumi.StringOutput `pulumi:"identifierPrefix"`
   106  	// The instance class to use.
   107  	InstanceClass pulumi.StringOutput `pulumi:"instanceClass"`
   108  	// The ARN for the KMS encryption key if one is set to the neptune cluster.
   109  	KmsKeyArn pulumi.StringOutput `pulumi:"kmsKeyArn"`
   110  	// The name of the neptune parameter group to associate with this instance.
   111  	NeptuneParameterGroupName pulumi.StringPtrOutput `pulumi:"neptuneParameterGroupName"`
   112  	// A subnet group to associate with this neptune instance. **NOTE:** This must match the `neptuneSubnetGroupName` of the attached `neptune.Cluster`.
   113  	NeptuneSubnetGroupName pulumi.StringOutput `pulumi:"neptuneSubnetGroupName"`
   114  	// The port on which the DB accepts connections. Defaults to `8182`.
   115  	Port pulumi.IntPtrOutput `pulumi:"port"`
   116  	// The daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00"
   117  	PreferredBackupWindow pulumi.StringOutput `pulumi:"preferredBackupWindow"`
   118  	// The window to perform maintenance in.
   119  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   120  	PreferredMaintenanceWindow pulumi.StringOutput `pulumi:"preferredMaintenanceWindow"`
   121  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.
   122  	PromotionTier pulumi.IntPtrOutput `pulumi:"promotionTier"`
   123  	// Bool to control if instance is publicly accessible. Default is `false`.
   124  	PubliclyAccessible pulumi.BoolPtrOutput `pulumi:"publiclyAccessible"`
   125  	// Determines whether a final DB snapshot is created before the DB instance is deleted.
   126  	SkipFinalSnapshot pulumi.BoolPtrOutput `pulumi:"skipFinalSnapshot"`
   127  	// Specifies whether the neptune cluster is encrypted.
   128  	StorageEncrypted pulumi.BoolOutput `pulumi:"storageEncrypted"`
   129  	// Storage type associated with the cluster `standard/iopt1`.
   130  	StorageType pulumi.StringOutput `pulumi:"storageType"`
   131  	// A map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   132  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   133  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   134  	//
   135  	// Deprecated: Please use `tags` instead.
   136  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   137  	// Boolean indicating if this instance is writable. `False` indicates this instance is a read replica.
   138  	Writer pulumi.BoolOutput `pulumi:"writer"`
   139  }
   140  
   141  // NewClusterInstance registers a new resource with the given unique name, arguments, and options.
   142  func NewClusterInstance(ctx *pulumi.Context,
   143  	name string, args *ClusterInstanceArgs, opts ...pulumi.ResourceOption) (*ClusterInstance, error) {
   144  	if args == nil {
   145  		return nil, errors.New("missing one or more required arguments")
   146  	}
   147  
   148  	if args.ClusterIdentifier == nil {
   149  		return nil, errors.New("invalid value for required argument 'ClusterIdentifier'")
   150  	}
   151  	if args.InstanceClass == nil {
   152  		return nil, errors.New("invalid value for required argument 'InstanceClass'")
   153  	}
   154  	opts = internal.PkgResourceDefaultOpts(opts)
   155  	var resource ClusterInstance
   156  	err := ctx.RegisterResource("aws:neptune/clusterInstance:ClusterInstance", name, args, &resource, opts...)
   157  	if err != nil {
   158  		return nil, err
   159  	}
   160  	return &resource, nil
   161  }
   162  
   163  // GetClusterInstance gets an existing ClusterInstance resource's state with the given name, ID, and optional
   164  // state properties that are used to uniquely qualify the lookup (nil if not required).
   165  func GetClusterInstance(ctx *pulumi.Context,
   166  	name string, id pulumi.IDInput, state *ClusterInstanceState, opts ...pulumi.ResourceOption) (*ClusterInstance, error) {
   167  	var resource ClusterInstance
   168  	err := ctx.ReadResource("aws:neptune/clusterInstance:ClusterInstance", name, id, state, &resource, opts...)
   169  	if err != nil {
   170  		return nil, err
   171  	}
   172  	return &resource, nil
   173  }
   174  
   175  // Input properties used for looking up and filtering ClusterInstance resources.
   176  type clusterInstanceState struct {
   177  	// The hostname of the instance. See also `endpoint` and `port`.
   178  	Address *string `pulumi:"address"`
   179  	// Specifies whether any instance modifications
   180  	// are applied immediately, or during the next maintenance window. Default is`false`.
   181  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   182  	// Amazon Resource Name (ARN) of neptune instance
   183  	Arn *string `pulumi:"arn"`
   184  	// Indicates that minor engine upgrades will be applied automatically to the instance during the maintenance window. Default is `true`.
   185  	AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"`
   186  	// The EC2 Availability Zone that the neptune instance is created in.
   187  	AvailabilityZone *string `pulumi:"availabilityZone"`
   188  	// The identifier of the `neptune.Cluster` in which to launch this instance.
   189  	ClusterIdentifier *string `pulumi:"clusterIdentifier"`
   190  	// The region-unique, immutable identifier for the neptune instance.
   191  	DbiResourceId *string `pulumi:"dbiResourceId"`
   192  	// The connection endpoint in `address:port` format.
   193  	Endpoint *string `pulumi:"endpoint"`
   194  	// The name of the database engine to be used for the neptune instance. Defaults to `neptune`. Valid Values: `neptune`.
   195  	Engine *string `pulumi:"engine"`
   196  	// The neptune engine version. Currently configuring this argumnet has no effect.
   197  	EngineVersion *string `pulumi:"engineVersion"`
   198  	// The identifier for the neptune instance, if omitted, this provider will assign a random, unique identifier.
   199  	Identifier *string `pulumi:"identifier"`
   200  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   201  	IdentifierPrefix *string `pulumi:"identifierPrefix"`
   202  	// The instance class to use.
   203  	InstanceClass *string `pulumi:"instanceClass"`
   204  	// The ARN for the KMS encryption key if one is set to the neptune cluster.
   205  	KmsKeyArn *string `pulumi:"kmsKeyArn"`
   206  	// The name of the neptune parameter group to associate with this instance.
   207  	NeptuneParameterGroupName *string `pulumi:"neptuneParameterGroupName"`
   208  	// A subnet group to associate with this neptune instance. **NOTE:** This must match the `neptuneSubnetGroupName` of the attached `neptune.Cluster`.
   209  	NeptuneSubnetGroupName *string `pulumi:"neptuneSubnetGroupName"`
   210  	// The port on which the DB accepts connections. Defaults to `8182`.
   211  	Port *int `pulumi:"port"`
   212  	// The daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00"
   213  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   214  	// The window to perform maintenance in.
   215  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   216  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   217  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.
   218  	PromotionTier *int `pulumi:"promotionTier"`
   219  	// Bool to control if instance is publicly accessible. Default is `false`.
   220  	PubliclyAccessible *bool `pulumi:"publiclyAccessible"`
   221  	// Determines whether a final DB snapshot is created before the DB instance is deleted.
   222  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   223  	// Specifies whether the neptune cluster is encrypted.
   224  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   225  	// Storage type associated with the cluster `standard/iopt1`.
   226  	StorageType *string `pulumi:"storageType"`
   227  	// A map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   228  	Tags map[string]string `pulumi:"tags"`
   229  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   230  	//
   231  	// Deprecated: Please use `tags` instead.
   232  	TagsAll map[string]string `pulumi:"tagsAll"`
   233  	// Boolean indicating if this instance is writable. `False` indicates this instance is a read replica.
   234  	Writer *bool `pulumi:"writer"`
   235  }
   236  
   237  type ClusterInstanceState struct {
   238  	// The hostname of the instance. See also `endpoint` and `port`.
   239  	Address pulumi.StringPtrInput
   240  	// Specifies whether any instance modifications
   241  	// are applied immediately, or during the next maintenance window. Default is`false`.
   242  	ApplyImmediately pulumi.BoolPtrInput
   243  	// Amazon Resource Name (ARN) of neptune instance
   244  	Arn pulumi.StringPtrInput
   245  	// Indicates that minor engine upgrades will be applied automatically to the instance during the maintenance window. Default is `true`.
   246  	AutoMinorVersionUpgrade pulumi.BoolPtrInput
   247  	// The EC2 Availability Zone that the neptune instance is created in.
   248  	AvailabilityZone pulumi.StringPtrInput
   249  	// The identifier of the `neptune.Cluster` in which to launch this instance.
   250  	ClusterIdentifier pulumi.StringPtrInput
   251  	// The region-unique, immutable identifier for the neptune instance.
   252  	DbiResourceId pulumi.StringPtrInput
   253  	// The connection endpoint in `address:port` format.
   254  	Endpoint pulumi.StringPtrInput
   255  	// The name of the database engine to be used for the neptune instance. Defaults to `neptune`. Valid Values: `neptune`.
   256  	Engine pulumi.StringPtrInput
   257  	// The neptune engine version. Currently configuring this argumnet has no effect.
   258  	EngineVersion pulumi.StringPtrInput
   259  	// The identifier for the neptune instance, if omitted, this provider will assign a random, unique identifier.
   260  	Identifier pulumi.StringPtrInput
   261  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   262  	IdentifierPrefix pulumi.StringPtrInput
   263  	// The instance class to use.
   264  	InstanceClass pulumi.StringPtrInput
   265  	// The ARN for the KMS encryption key if one is set to the neptune cluster.
   266  	KmsKeyArn pulumi.StringPtrInput
   267  	// The name of the neptune parameter group to associate with this instance.
   268  	NeptuneParameterGroupName pulumi.StringPtrInput
   269  	// A subnet group to associate with this neptune instance. **NOTE:** This must match the `neptuneSubnetGroupName` of the attached `neptune.Cluster`.
   270  	NeptuneSubnetGroupName pulumi.StringPtrInput
   271  	// The port on which the DB accepts connections. Defaults to `8182`.
   272  	Port pulumi.IntPtrInput
   273  	// The daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00"
   274  	PreferredBackupWindow pulumi.StringPtrInput
   275  	// The window to perform maintenance in.
   276  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   277  	PreferredMaintenanceWindow pulumi.StringPtrInput
   278  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.
   279  	PromotionTier pulumi.IntPtrInput
   280  	// Bool to control if instance is publicly accessible. Default is `false`.
   281  	PubliclyAccessible pulumi.BoolPtrInput
   282  	// Determines whether a final DB snapshot is created before the DB instance is deleted.
   283  	SkipFinalSnapshot pulumi.BoolPtrInput
   284  	// Specifies whether the neptune cluster is encrypted.
   285  	StorageEncrypted pulumi.BoolPtrInput
   286  	// Storage type associated with the cluster `standard/iopt1`.
   287  	StorageType pulumi.StringPtrInput
   288  	// A map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   289  	Tags pulumi.StringMapInput
   290  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   291  	//
   292  	// Deprecated: Please use `tags` instead.
   293  	TagsAll pulumi.StringMapInput
   294  	// Boolean indicating if this instance is writable. `False` indicates this instance is a read replica.
   295  	Writer pulumi.BoolPtrInput
   296  }
   297  
   298  func (ClusterInstanceState) ElementType() reflect.Type {
   299  	return reflect.TypeOf((*clusterInstanceState)(nil)).Elem()
   300  }
   301  
   302  type clusterInstanceArgs struct {
   303  	// Specifies whether any instance modifications
   304  	// are applied immediately, or during the next maintenance window. Default is`false`.
   305  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   306  	// Indicates that minor engine upgrades will be applied automatically to the instance during the maintenance window. Default is `true`.
   307  	AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"`
   308  	// The EC2 Availability Zone that the neptune instance is created in.
   309  	AvailabilityZone *string `pulumi:"availabilityZone"`
   310  	// The identifier of the `neptune.Cluster` in which to launch this instance.
   311  	ClusterIdentifier string `pulumi:"clusterIdentifier"`
   312  	// The name of the database engine to be used for the neptune instance. Defaults to `neptune`. Valid Values: `neptune`.
   313  	Engine *string `pulumi:"engine"`
   314  	// The neptune engine version. Currently configuring this argumnet has no effect.
   315  	EngineVersion *string `pulumi:"engineVersion"`
   316  	// The identifier for the neptune instance, if omitted, this provider will assign a random, unique identifier.
   317  	Identifier *string `pulumi:"identifier"`
   318  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   319  	IdentifierPrefix *string `pulumi:"identifierPrefix"`
   320  	// The instance class to use.
   321  	InstanceClass string `pulumi:"instanceClass"`
   322  	// The name of the neptune parameter group to associate with this instance.
   323  	NeptuneParameterGroupName *string `pulumi:"neptuneParameterGroupName"`
   324  	// A subnet group to associate with this neptune instance. **NOTE:** This must match the `neptuneSubnetGroupName` of the attached `neptune.Cluster`.
   325  	NeptuneSubnetGroupName *string `pulumi:"neptuneSubnetGroupName"`
   326  	// The port on which the DB accepts connections. Defaults to `8182`.
   327  	Port *int `pulumi:"port"`
   328  	// The daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00"
   329  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   330  	// The window to perform maintenance in.
   331  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   332  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   333  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.
   334  	PromotionTier *int `pulumi:"promotionTier"`
   335  	// Bool to control if instance is publicly accessible. Default is `false`.
   336  	PubliclyAccessible *bool `pulumi:"publiclyAccessible"`
   337  	// Determines whether a final DB snapshot is created before the DB instance is deleted.
   338  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   339  	// A map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   340  	Tags map[string]string `pulumi:"tags"`
   341  }
   342  
   343  // The set of arguments for constructing a ClusterInstance resource.
   344  type ClusterInstanceArgs struct {
   345  	// Specifies whether any instance modifications
   346  	// are applied immediately, or during the next maintenance window. Default is`false`.
   347  	ApplyImmediately pulumi.BoolPtrInput
   348  	// Indicates that minor engine upgrades will be applied automatically to the instance during the maintenance window. Default is `true`.
   349  	AutoMinorVersionUpgrade pulumi.BoolPtrInput
   350  	// The EC2 Availability Zone that the neptune instance is created in.
   351  	AvailabilityZone pulumi.StringPtrInput
   352  	// The identifier of the `neptune.Cluster` in which to launch this instance.
   353  	ClusterIdentifier pulumi.StringInput
   354  	// The name of the database engine to be used for the neptune instance. Defaults to `neptune`. Valid Values: `neptune`.
   355  	Engine pulumi.StringPtrInput
   356  	// The neptune engine version. Currently configuring this argumnet has no effect.
   357  	EngineVersion pulumi.StringPtrInput
   358  	// The identifier for the neptune instance, if omitted, this provider will assign a random, unique identifier.
   359  	Identifier pulumi.StringPtrInput
   360  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   361  	IdentifierPrefix pulumi.StringPtrInput
   362  	// The instance class to use.
   363  	InstanceClass pulumi.StringInput
   364  	// The name of the neptune parameter group to associate with this instance.
   365  	NeptuneParameterGroupName pulumi.StringPtrInput
   366  	// A subnet group to associate with this neptune instance. **NOTE:** This must match the `neptuneSubnetGroupName` of the attached `neptune.Cluster`.
   367  	NeptuneSubnetGroupName pulumi.StringPtrInput
   368  	// The port on which the DB accepts connections. Defaults to `8182`.
   369  	Port pulumi.IntPtrInput
   370  	// The daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00"
   371  	PreferredBackupWindow pulumi.StringPtrInput
   372  	// The window to perform maintenance in.
   373  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   374  	PreferredMaintenanceWindow pulumi.StringPtrInput
   375  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.
   376  	PromotionTier pulumi.IntPtrInput
   377  	// Bool to control if instance is publicly accessible. Default is `false`.
   378  	PubliclyAccessible pulumi.BoolPtrInput
   379  	// Determines whether a final DB snapshot is created before the DB instance is deleted.
   380  	SkipFinalSnapshot pulumi.BoolPtrInput
   381  	// A map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   382  	Tags pulumi.StringMapInput
   383  }
   384  
   385  func (ClusterInstanceArgs) ElementType() reflect.Type {
   386  	return reflect.TypeOf((*clusterInstanceArgs)(nil)).Elem()
   387  }
   388  
   389  type ClusterInstanceInput interface {
   390  	pulumi.Input
   391  
   392  	ToClusterInstanceOutput() ClusterInstanceOutput
   393  	ToClusterInstanceOutputWithContext(ctx context.Context) ClusterInstanceOutput
   394  }
   395  
   396  func (*ClusterInstance) ElementType() reflect.Type {
   397  	return reflect.TypeOf((**ClusterInstance)(nil)).Elem()
   398  }
   399  
   400  func (i *ClusterInstance) ToClusterInstanceOutput() ClusterInstanceOutput {
   401  	return i.ToClusterInstanceOutputWithContext(context.Background())
   402  }
   403  
   404  func (i *ClusterInstance) ToClusterInstanceOutputWithContext(ctx context.Context) ClusterInstanceOutput {
   405  	return pulumi.ToOutputWithContext(ctx, i).(ClusterInstanceOutput)
   406  }
   407  
   408  // ClusterInstanceArrayInput is an input type that accepts ClusterInstanceArray and ClusterInstanceArrayOutput values.
   409  // You can construct a concrete instance of `ClusterInstanceArrayInput` via:
   410  //
   411  //	ClusterInstanceArray{ ClusterInstanceArgs{...} }
   412  type ClusterInstanceArrayInput interface {
   413  	pulumi.Input
   414  
   415  	ToClusterInstanceArrayOutput() ClusterInstanceArrayOutput
   416  	ToClusterInstanceArrayOutputWithContext(context.Context) ClusterInstanceArrayOutput
   417  }
   418  
   419  type ClusterInstanceArray []ClusterInstanceInput
   420  
   421  func (ClusterInstanceArray) ElementType() reflect.Type {
   422  	return reflect.TypeOf((*[]*ClusterInstance)(nil)).Elem()
   423  }
   424  
   425  func (i ClusterInstanceArray) ToClusterInstanceArrayOutput() ClusterInstanceArrayOutput {
   426  	return i.ToClusterInstanceArrayOutputWithContext(context.Background())
   427  }
   428  
   429  func (i ClusterInstanceArray) ToClusterInstanceArrayOutputWithContext(ctx context.Context) ClusterInstanceArrayOutput {
   430  	return pulumi.ToOutputWithContext(ctx, i).(ClusterInstanceArrayOutput)
   431  }
   432  
   433  // ClusterInstanceMapInput is an input type that accepts ClusterInstanceMap and ClusterInstanceMapOutput values.
   434  // You can construct a concrete instance of `ClusterInstanceMapInput` via:
   435  //
   436  //	ClusterInstanceMap{ "key": ClusterInstanceArgs{...} }
   437  type ClusterInstanceMapInput interface {
   438  	pulumi.Input
   439  
   440  	ToClusterInstanceMapOutput() ClusterInstanceMapOutput
   441  	ToClusterInstanceMapOutputWithContext(context.Context) ClusterInstanceMapOutput
   442  }
   443  
   444  type ClusterInstanceMap map[string]ClusterInstanceInput
   445  
   446  func (ClusterInstanceMap) ElementType() reflect.Type {
   447  	return reflect.TypeOf((*map[string]*ClusterInstance)(nil)).Elem()
   448  }
   449  
   450  func (i ClusterInstanceMap) ToClusterInstanceMapOutput() ClusterInstanceMapOutput {
   451  	return i.ToClusterInstanceMapOutputWithContext(context.Background())
   452  }
   453  
   454  func (i ClusterInstanceMap) ToClusterInstanceMapOutputWithContext(ctx context.Context) ClusterInstanceMapOutput {
   455  	return pulumi.ToOutputWithContext(ctx, i).(ClusterInstanceMapOutput)
   456  }
   457  
   458  type ClusterInstanceOutput struct{ *pulumi.OutputState }
   459  
   460  func (ClusterInstanceOutput) ElementType() reflect.Type {
   461  	return reflect.TypeOf((**ClusterInstance)(nil)).Elem()
   462  }
   463  
   464  func (o ClusterInstanceOutput) ToClusterInstanceOutput() ClusterInstanceOutput {
   465  	return o
   466  }
   467  
   468  func (o ClusterInstanceOutput) ToClusterInstanceOutputWithContext(ctx context.Context) ClusterInstanceOutput {
   469  	return o
   470  }
   471  
   472  // The hostname of the instance. See also `endpoint` and `port`.
   473  func (o ClusterInstanceOutput) Address() pulumi.StringOutput {
   474  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.Address }).(pulumi.StringOutput)
   475  }
   476  
   477  // Specifies whether any instance modifications
   478  // are applied immediately, or during the next maintenance window. Default is`false`.
   479  func (o ClusterInstanceOutput) ApplyImmediately() pulumi.BoolOutput {
   480  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolOutput { return v.ApplyImmediately }).(pulumi.BoolOutput)
   481  }
   482  
   483  // Amazon Resource Name (ARN) of neptune instance
   484  func (o ClusterInstanceOutput) Arn() pulumi.StringOutput {
   485  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   486  }
   487  
   488  // Indicates that minor engine upgrades will be applied automatically to the instance during the maintenance window. Default is `true`.
   489  func (o ClusterInstanceOutput) AutoMinorVersionUpgrade() pulumi.BoolPtrOutput {
   490  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolPtrOutput { return v.AutoMinorVersionUpgrade }).(pulumi.BoolPtrOutput)
   491  }
   492  
   493  // The EC2 Availability Zone that the neptune instance is created in.
   494  func (o ClusterInstanceOutput) AvailabilityZone() pulumi.StringOutput {
   495  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput)
   496  }
   497  
   498  // The identifier of the `neptune.Cluster` in which to launch this instance.
   499  func (o ClusterInstanceOutput) ClusterIdentifier() pulumi.StringOutput {
   500  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.ClusterIdentifier }).(pulumi.StringOutput)
   501  }
   502  
   503  // The region-unique, immutable identifier for the neptune instance.
   504  func (o ClusterInstanceOutput) DbiResourceId() pulumi.StringOutput {
   505  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.DbiResourceId }).(pulumi.StringOutput)
   506  }
   507  
   508  // The connection endpoint in `address:port` format.
   509  func (o ClusterInstanceOutput) Endpoint() pulumi.StringOutput {
   510  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
   511  }
   512  
   513  // The name of the database engine to be used for the neptune instance. Defaults to `neptune`. Valid Values: `neptune`.
   514  func (o ClusterInstanceOutput) Engine() pulumi.StringPtrOutput {
   515  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringPtrOutput { return v.Engine }).(pulumi.StringPtrOutput)
   516  }
   517  
   518  // The neptune engine version. Currently configuring this argumnet has no effect.
   519  func (o ClusterInstanceOutput) EngineVersion() pulumi.StringOutput {
   520  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput)
   521  }
   522  
   523  // The identifier for the neptune instance, if omitted, this provider will assign a random, unique identifier.
   524  func (o ClusterInstanceOutput) Identifier() pulumi.StringOutput {
   525  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.Identifier }).(pulumi.StringOutput)
   526  }
   527  
   528  // Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   529  func (o ClusterInstanceOutput) IdentifierPrefix() pulumi.StringOutput {
   530  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.IdentifierPrefix }).(pulumi.StringOutput)
   531  }
   532  
   533  // The instance class to use.
   534  func (o ClusterInstanceOutput) InstanceClass() pulumi.StringOutput {
   535  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.InstanceClass }).(pulumi.StringOutput)
   536  }
   537  
   538  // The ARN for the KMS encryption key if one is set to the neptune cluster.
   539  func (o ClusterInstanceOutput) KmsKeyArn() pulumi.StringOutput {
   540  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.KmsKeyArn }).(pulumi.StringOutput)
   541  }
   542  
   543  // The name of the neptune parameter group to associate with this instance.
   544  func (o ClusterInstanceOutput) NeptuneParameterGroupName() pulumi.StringPtrOutput {
   545  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringPtrOutput { return v.NeptuneParameterGroupName }).(pulumi.StringPtrOutput)
   546  }
   547  
   548  // A subnet group to associate with this neptune instance. **NOTE:** This must match the `neptuneSubnetGroupName` of the attached `neptune.Cluster`.
   549  func (o ClusterInstanceOutput) NeptuneSubnetGroupName() pulumi.StringOutput {
   550  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.NeptuneSubnetGroupName }).(pulumi.StringOutput)
   551  }
   552  
   553  // The port on which the DB accepts connections. Defaults to `8182`.
   554  func (o ClusterInstanceOutput) Port() pulumi.IntPtrOutput {
   555  	return o.ApplyT(func(v *ClusterInstance) pulumi.IntPtrOutput { return v.Port }).(pulumi.IntPtrOutput)
   556  }
   557  
   558  // The daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00"
   559  func (o ClusterInstanceOutput) PreferredBackupWindow() pulumi.StringOutput {
   560  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.PreferredBackupWindow }).(pulumi.StringOutput)
   561  }
   562  
   563  // The window to perform maintenance in.
   564  // Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   565  func (o ClusterInstanceOutput) PreferredMaintenanceWindow() pulumi.StringOutput {
   566  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.PreferredMaintenanceWindow }).(pulumi.StringOutput)
   567  }
   568  
   569  // Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.
   570  func (o ClusterInstanceOutput) PromotionTier() pulumi.IntPtrOutput {
   571  	return o.ApplyT(func(v *ClusterInstance) pulumi.IntPtrOutput { return v.PromotionTier }).(pulumi.IntPtrOutput)
   572  }
   573  
   574  // Bool to control if instance is publicly accessible. Default is `false`.
   575  func (o ClusterInstanceOutput) PubliclyAccessible() pulumi.BoolPtrOutput {
   576  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolPtrOutput { return v.PubliclyAccessible }).(pulumi.BoolPtrOutput)
   577  }
   578  
   579  // Determines whether a final DB snapshot is created before the DB instance is deleted.
   580  func (o ClusterInstanceOutput) SkipFinalSnapshot() pulumi.BoolPtrOutput {
   581  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolPtrOutput { return v.SkipFinalSnapshot }).(pulumi.BoolPtrOutput)
   582  }
   583  
   584  // Specifies whether the neptune cluster is encrypted.
   585  func (o ClusterInstanceOutput) StorageEncrypted() pulumi.BoolOutput {
   586  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolOutput { return v.StorageEncrypted }).(pulumi.BoolOutput)
   587  }
   588  
   589  // Storage type associated with the cluster `standard/iopt1`.
   590  func (o ClusterInstanceOutput) StorageType() pulumi.StringOutput {
   591  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.StorageType }).(pulumi.StringOutput)
   592  }
   593  
   594  // A map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   595  func (o ClusterInstanceOutput) Tags() pulumi.StringMapOutput {
   596  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   597  }
   598  
   599  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   600  //
   601  // Deprecated: Please use `tags` instead.
   602  func (o ClusterInstanceOutput) TagsAll() pulumi.StringMapOutput {
   603  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   604  }
   605  
   606  // Boolean indicating if this instance is writable. `False` indicates this instance is a read replica.
   607  func (o ClusterInstanceOutput) Writer() pulumi.BoolOutput {
   608  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolOutput { return v.Writer }).(pulumi.BoolOutput)
   609  }
   610  
   611  type ClusterInstanceArrayOutput struct{ *pulumi.OutputState }
   612  
   613  func (ClusterInstanceArrayOutput) ElementType() reflect.Type {
   614  	return reflect.TypeOf((*[]*ClusterInstance)(nil)).Elem()
   615  }
   616  
   617  func (o ClusterInstanceArrayOutput) ToClusterInstanceArrayOutput() ClusterInstanceArrayOutput {
   618  	return o
   619  }
   620  
   621  func (o ClusterInstanceArrayOutput) ToClusterInstanceArrayOutputWithContext(ctx context.Context) ClusterInstanceArrayOutput {
   622  	return o
   623  }
   624  
   625  func (o ClusterInstanceArrayOutput) Index(i pulumi.IntInput) ClusterInstanceOutput {
   626  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ClusterInstance {
   627  		return vs[0].([]*ClusterInstance)[vs[1].(int)]
   628  	}).(ClusterInstanceOutput)
   629  }
   630  
   631  type ClusterInstanceMapOutput struct{ *pulumi.OutputState }
   632  
   633  func (ClusterInstanceMapOutput) ElementType() reflect.Type {
   634  	return reflect.TypeOf((*map[string]*ClusterInstance)(nil)).Elem()
   635  }
   636  
   637  func (o ClusterInstanceMapOutput) ToClusterInstanceMapOutput() ClusterInstanceMapOutput {
   638  	return o
   639  }
   640  
   641  func (o ClusterInstanceMapOutput) ToClusterInstanceMapOutputWithContext(ctx context.Context) ClusterInstanceMapOutput {
   642  	return o
   643  }
   644  
   645  func (o ClusterInstanceMapOutput) MapIndex(k pulumi.StringInput) ClusterInstanceOutput {
   646  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ClusterInstance {
   647  		return vs[0].(map[string]*ClusterInstance)[vs[1].(string)]
   648  	}).(ClusterInstanceOutput)
   649  }
   650  
   651  func init() {
   652  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInstanceInput)(nil)).Elem(), &ClusterInstance{})
   653  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInstanceArrayInput)(nil)).Elem(), ClusterInstanceArray{})
   654  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInstanceMapInput)(nil)).Elem(), ClusterInstanceMap{})
   655  	pulumi.RegisterOutputType(ClusterInstanceOutput{})
   656  	pulumi.RegisterOutputType(ClusterInstanceArrayOutput{})
   657  	pulumi.RegisterOutputType(ClusterInstanceMapOutput{})
   658  }