github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/neptune/cluster.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  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Provides an Neptune Cluster Resource. A Cluster Resource defines attributes that are
    15  // applied to the entire cluster of Neptune Cluster Instances.
    16  //
    17  // Changes to a Neptune Cluster can occur when you manually change a
    18  // parameter, such as `backupRetentionPeriod`, and are reflected in the next maintenance
    19  // window. Because of this, this provider may report a difference in its planning
    20  // phase because a modification has not yet taken place. You can use the
    21  // `applyImmediately` flag to instruct the service to apply the change immediately
    22  // (see documentation below).
    23  //
    24  // ## Example Usage
    25  //
    26  // <!--Start PulumiCodeChooser -->
    27  // ```go
    28  // package main
    29  //
    30  // import (
    31  //
    32  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/neptune"
    33  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    34  //
    35  // )
    36  //
    37  //	func main() {
    38  //		pulumi.Run(func(ctx *pulumi.Context) error {
    39  //			_, err := neptune.NewCluster(ctx, "default", &neptune.ClusterArgs{
    40  //				ClusterIdentifier:                pulumi.String("neptune-cluster-demo"),
    41  //				Engine:                           pulumi.String("neptune"),
    42  //				BackupRetentionPeriod:            pulumi.Int(5),
    43  //				PreferredBackupWindow:            pulumi.String("07:00-09:00"),
    44  //				SkipFinalSnapshot:                pulumi.Bool(true),
    45  //				IamDatabaseAuthenticationEnabled: pulumi.Bool(true),
    46  //				ApplyImmediately:                 pulumi.Bool(true),
    47  //			})
    48  //			if err != nil {
    49  //				return err
    50  //			}
    51  //			return nil
    52  //		})
    53  //	}
    54  //
    55  // ```
    56  // <!--End PulumiCodeChooser -->
    57  //
    58  // > **Note:** AWS Neptune does not support user name/password–based access control.
    59  // See the AWS [Docs](https://docs.aws.amazon.com/neptune/latest/userguide/limits.html) for more information.
    60  //
    61  // ## Import
    62  //
    63  // Using `pulumi import`, import `aws_neptune_cluster` using the cluster identifier. For example:
    64  //
    65  // ```sh
    66  // $ pulumi import aws:neptune/cluster:Cluster example my-cluster
    67  // ```
    68  type Cluster struct {
    69  	pulumi.CustomResourceState
    70  
    71  	// Specifies whether upgrades between different major versions are allowed. You must set it to `true` when providing an `engineVersion` parameter that uses a different major version than the DB cluster's current version. Default is `false`.
    72  	AllowMajorVersionUpgrade pulumi.BoolOutput `pulumi:"allowMajorVersionUpgrade"`
    73  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`.
    74  	ApplyImmediately pulumi.BoolOutput `pulumi:"applyImmediately"`
    75  	// The Neptune Cluster Amazon Resource Name (ARN)
    76  	Arn pulumi.StringOutput `pulumi:"arn"`
    77  	// A list of EC2 Availability Zones that instances in the Neptune cluster can be created in.
    78  	AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"`
    79  	// The days to retain backups for. Default `1`
    80  	BackupRetentionPeriod pulumi.IntPtrOutput `pulumi:"backupRetentionPeriod"`
    81  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
    82  	ClusterIdentifier pulumi.StringOutput `pulumi:"clusterIdentifier"`
    83  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
    84  	ClusterIdentifierPrefix pulumi.StringOutput `pulumi:"clusterIdentifierPrefix"`
    85  	// List of Neptune Instances that are a part of this cluster
    86  	ClusterMembers pulumi.StringArrayOutput `pulumi:"clusterMembers"`
    87  	// The Neptune Cluster Resource ID
    88  	ClusterResourceId pulumi.StringOutput `pulumi:"clusterResourceId"`
    89  	// If set to true, tags are copied to any snapshot of the DB cluster that is created.
    90  	CopyTagsToSnapshot pulumi.BoolPtrOutput `pulumi:"copyTagsToSnapshot"`
    91  	// A value that indicates whether the DB cluster has deletion protection enabled.The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
    92  	DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"`
    93  	// A list of the log types this DB cluster is configured to export to Cloudwatch Logs. Currently only supports `audit` and `slowquery`.
    94  	EnableCloudwatchLogsExports pulumi.StringArrayOutput `pulumi:"enableCloudwatchLogsExports"`
    95  	// The DNS address of the Neptune instance
    96  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
    97  	// The name of the database engine to be used for this Neptune cluster. Defaults to `neptune`.
    98  	Engine pulumi.StringPtrOutput `pulumi:"engine"`
    99  	// The database engine version.
   100  	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
   101  	// The name of your final Neptune snapshot when this Neptune cluster is deleted. If omitted, no final snapshot will be made.
   102  	FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"`
   103  	// The global cluster identifier specified on `neptune.GlobalCluster`.
   104  	GlobalClusterIdentifier pulumi.StringPtrOutput `pulumi:"globalClusterIdentifier"`
   105  	// The Route53 Hosted Zone ID of the endpoint
   106  	HostedZoneId pulumi.StringOutput `pulumi:"hostedZoneId"`
   107  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled.
   108  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrOutput `pulumi:"iamDatabaseAuthenticationEnabled"`
   109  	// A List of ARNs for the IAM roles to associate to the Neptune Cluster.
   110  	IamRoles pulumi.StringArrayOutput `pulumi:"iamRoles"`
   111  	// The ARN for the KMS encryption key. When specifying `kmsKeyArn`, `storageEncrypted` needs to be set to true.
   112  	KmsKeyArn pulumi.StringOutput `pulumi:"kmsKeyArn"`
   113  	// A cluster parameter group to associate with the cluster.
   114  	NeptuneClusterParameterGroupName pulumi.StringPtrOutput `pulumi:"neptuneClusterParameterGroupName"`
   115  	// The name of the DB parameter group to apply to all instances of the DB cluster.
   116  	NeptuneInstanceParameterGroupName pulumi.StringPtrOutput `pulumi:"neptuneInstanceParameterGroupName"`
   117  	// A Neptune subnet group to associate with this Neptune instance.
   118  	NeptuneSubnetGroupName pulumi.StringOutput `pulumi:"neptuneSubnetGroupName"`
   119  	// The port on which the Neptune accepts connections. Default is `8182`.
   120  	Port pulumi.IntPtrOutput `pulumi:"port"`
   121  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   122  	PreferredBackupWindow pulumi.StringOutput `pulumi:"preferredBackupWindow"`
   123  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   124  	PreferredMaintenanceWindow pulumi.StringOutput `pulumi:"preferredMaintenanceWindow"`
   125  	// A read-only endpoint for the Neptune cluster, automatically load-balanced across replicas
   126  	ReaderEndpoint pulumi.StringOutput `pulumi:"readerEndpoint"`
   127  	// ARN of a source Neptune cluster or Neptune instance if this Neptune cluster is to be created as a Read Replica.
   128  	ReplicationSourceIdentifier pulumi.StringPtrOutput `pulumi:"replicationSourceIdentifier"`
   129  	// If set, create the Neptune cluster as a serverless one. See Serverless for example block attributes.
   130  	ServerlessV2ScalingConfiguration ClusterServerlessV2ScalingConfigurationPtrOutput `pulumi:"serverlessV2ScalingConfiguration"`
   131  	// Determines whether a final Neptune snapshot is created before the Neptune cluster is deleted. If true is specified, no Neptune snapshot is created. If false is specified, a Neptune snapshot is created before the Neptune cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   132  	SkipFinalSnapshot pulumi.BoolPtrOutput `pulumi:"skipFinalSnapshot"`
   133  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a Neptune cluster snapshot, or the ARN when specifying a Neptune snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   134  	SnapshotIdentifier pulumi.StringPtrOutput `pulumi:"snapshotIdentifier"`
   135  	// Specifies whether the Neptune cluster is encrypted. The default is `false` if not specified.
   136  	StorageEncrypted pulumi.BoolPtrOutput `pulumi:"storageEncrypted"`
   137  	// Storage type associated with the cluster `standard/iopt1`. Default: `standard`
   138  	StorageType pulumi.StringOutput `pulumi:"storageType"`
   139  	// A map of tags to assign to the Neptune cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   140  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   141  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   142  	//
   143  	// Deprecated: Please use `tags` instead.
   144  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   145  	// List of VPC security groups to associate with the Cluster
   146  	VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"`
   147  }
   148  
   149  // NewCluster registers a new resource with the given unique name, arguments, and options.
   150  func NewCluster(ctx *pulumi.Context,
   151  	name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error) {
   152  	if args == nil {
   153  		args = &ClusterArgs{}
   154  	}
   155  
   156  	opts = internal.PkgResourceDefaultOpts(opts)
   157  	var resource Cluster
   158  	err := ctx.RegisterResource("aws:neptune/cluster:Cluster", name, args, &resource, opts...)
   159  	if err != nil {
   160  		return nil, err
   161  	}
   162  	return &resource, nil
   163  }
   164  
   165  // GetCluster gets an existing Cluster resource's state with the given name, ID, and optional
   166  // state properties that are used to uniquely qualify the lookup (nil if not required).
   167  func GetCluster(ctx *pulumi.Context,
   168  	name string, id pulumi.IDInput, state *ClusterState, opts ...pulumi.ResourceOption) (*Cluster, error) {
   169  	var resource Cluster
   170  	err := ctx.ReadResource("aws:neptune/cluster:Cluster", name, id, state, &resource, opts...)
   171  	if err != nil {
   172  		return nil, err
   173  	}
   174  	return &resource, nil
   175  }
   176  
   177  // Input properties used for looking up and filtering Cluster resources.
   178  type clusterState struct {
   179  	// Specifies whether upgrades between different major versions are allowed. You must set it to `true` when providing an `engineVersion` parameter that uses a different major version than the DB cluster's current version. Default is `false`.
   180  	AllowMajorVersionUpgrade *bool `pulumi:"allowMajorVersionUpgrade"`
   181  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`.
   182  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   183  	// The Neptune Cluster Amazon Resource Name (ARN)
   184  	Arn *string `pulumi:"arn"`
   185  	// A list of EC2 Availability Zones that instances in the Neptune cluster can be created in.
   186  	AvailabilityZones []string `pulumi:"availabilityZones"`
   187  	// The days to retain backups for. Default `1`
   188  	BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"`
   189  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   190  	ClusterIdentifier *string `pulumi:"clusterIdentifier"`
   191  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   192  	ClusterIdentifierPrefix *string `pulumi:"clusterIdentifierPrefix"`
   193  	// List of Neptune Instances that are a part of this cluster
   194  	ClusterMembers []string `pulumi:"clusterMembers"`
   195  	// The Neptune Cluster Resource ID
   196  	ClusterResourceId *string `pulumi:"clusterResourceId"`
   197  	// If set to true, tags are copied to any snapshot of the DB cluster that is created.
   198  	CopyTagsToSnapshot *bool `pulumi:"copyTagsToSnapshot"`
   199  	// A value that indicates whether the DB cluster has deletion protection enabled.The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   200  	DeletionProtection *bool `pulumi:"deletionProtection"`
   201  	// A list of the log types this DB cluster is configured to export to Cloudwatch Logs. Currently only supports `audit` and `slowquery`.
   202  	EnableCloudwatchLogsExports []string `pulumi:"enableCloudwatchLogsExports"`
   203  	// The DNS address of the Neptune instance
   204  	Endpoint *string `pulumi:"endpoint"`
   205  	// The name of the database engine to be used for this Neptune cluster. Defaults to `neptune`.
   206  	Engine *string `pulumi:"engine"`
   207  	// The database engine version.
   208  	EngineVersion *string `pulumi:"engineVersion"`
   209  	// The name of your final Neptune snapshot when this Neptune cluster is deleted. If omitted, no final snapshot will be made.
   210  	FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"`
   211  	// The global cluster identifier specified on `neptune.GlobalCluster`.
   212  	GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"`
   213  	// The Route53 Hosted Zone ID of the endpoint
   214  	HostedZoneId *string `pulumi:"hostedZoneId"`
   215  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled.
   216  	IamDatabaseAuthenticationEnabled *bool `pulumi:"iamDatabaseAuthenticationEnabled"`
   217  	// A List of ARNs for the IAM roles to associate to the Neptune Cluster.
   218  	IamRoles []string `pulumi:"iamRoles"`
   219  	// The ARN for the KMS encryption key. When specifying `kmsKeyArn`, `storageEncrypted` needs to be set to true.
   220  	KmsKeyArn *string `pulumi:"kmsKeyArn"`
   221  	// A cluster parameter group to associate with the cluster.
   222  	NeptuneClusterParameterGroupName *string `pulumi:"neptuneClusterParameterGroupName"`
   223  	// The name of the DB parameter group to apply to all instances of the DB cluster.
   224  	NeptuneInstanceParameterGroupName *string `pulumi:"neptuneInstanceParameterGroupName"`
   225  	// A Neptune subnet group to associate with this Neptune instance.
   226  	NeptuneSubnetGroupName *string `pulumi:"neptuneSubnetGroupName"`
   227  	// The port on which the Neptune accepts connections. Default is `8182`.
   228  	Port *int `pulumi:"port"`
   229  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   230  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   231  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   232  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   233  	// A read-only endpoint for the Neptune cluster, automatically load-balanced across replicas
   234  	ReaderEndpoint *string `pulumi:"readerEndpoint"`
   235  	// ARN of a source Neptune cluster or Neptune instance if this Neptune cluster is to be created as a Read Replica.
   236  	ReplicationSourceIdentifier *string `pulumi:"replicationSourceIdentifier"`
   237  	// If set, create the Neptune cluster as a serverless one. See Serverless for example block attributes.
   238  	ServerlessV2ScalingConfiguration *ClusterServerlessV2ScalingConfiguration `pulumi:"serverlessV2ScalingConfiguration"`
   239  	// Determines whether a final Neptune snapshot is created before the Neptune cluster is deleted. If true is specified, no Neptune snapshot is created. If false is specified, a Neptune snapshot is created before the Neptune cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   240  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   241  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a Neptune cluster snapshot, or the ARN when specifying a Neptune snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   242  	SnapshotIdentifier *string `pulumi:"snapshotIdentifier"`
   243  	// Specifies whether the Neptune cluster is encrypted. The default is `false` if not specified.
   244  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   245  	// Storage type associated with the cluster `standard/iopt1`. Default: `standard`
   246  	StorageType *string `pulumi:"storageType"`
   247  	// A map of tags to assign to the Neptune cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   248  	Tags map[string]string `pulumi:"tags"`
   249  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   250  	//
   251  	// Deprecated: Please use `tags` instead.
   252  	TagsAll map[string]string `pulumi:"tagsAll"`
   253  	// List of VPC security groups to associate with the Cluster
   254  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   255  }
   256  
   257  type ClusterState struct {
   258  	// Specifies whether upgrades between different major versions are allowed. You must set it to `true` when providing an `engineVersion` parameter that uses a different major version than the DB cluster's current version. Default is `false`.
   259  	AllowMajorVersionUpgrade pulumi.BoolPtrInput
   260  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`.
   261  	ApplyImmediately pulumi.BoolPtrInput
   262  	// The Neptune Cluster Amazon Resource Name (ARN)
   263  	Arn pulumi.StringPtrInput
   264  	// A list of EC2 Availability Zones that instances in the Neptune cluster can be created in.
   265  	AvailabilityZones pulumi.StringArrayInput
   266  	// The days to retain backups for. Default `1`
   267  	BackupRetentionPeriod pulumi.IntPtrInput
   268  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   269  	ClusterIdentifier pulumi.StringPtrInput
   270  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   271  	ClusterIdentifierPrefix pulumi.StringPtrInput
   272  	// List of Neptune Instances that are a part of this cluster
   273  	ClusterMembers pulumi.StringArrayInput
   274  	// The Neptune Cluster Resource ID
   275  	ClusterResourceId pulumi.StringPtrInput
   276  	// If set to true, tags are copied to any snapshot of the DB cluster that is created.
   277  	CopyTagsToSnapshot pulumi.BoolPtrInput
   278  	// A value that indicates whether the DB cluster has deletion protection enabled.The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   279  	DeletionProtection pulumi.BoolPtrInput
   280  	// A list of the log types this DB cluster is configured to export to Cloudwatch Logs. Currently only supports `audit` and `slowquery`.
   281  	EnableCloudwatchLogsExports pulumi.StringArrayInput
   282  	// The DNS address of the Neptune instance
   283  	Endpoint pulumi.StringPtrInput
   284  	// The name of the database engine to be used for this Neptune cluster. Defaults to `neptune`.
   285  	Engine pulumi.StringPtrInput
   286  	// The database engine version.
   287  	EngineVersion pulumi.StringPtrInput
   288  	// The name of your final Neptune snapshot when this Neptune cluster is deleted. If omitted, no final snapshot will be made.
   289  	FinalSnapshotIdentifier pulumi.StringPtrInput
   290  	// The global cluster identifier specified on `neptune.GlobalCluster`.
   291  	GlobalClusterIdentifier pulumi.StringPtrInput
   292  	// The Route53 Hosted Zone ID of the endpoint
   293  	HostedZoneId pulumi.StringPtrInput
   294  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled.
   295  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrInput
   296  	// A List of ARNs for the IAM roles to associate to the Neptune Cluster.
   297  	IamRoles pulumi.StringArrayInput
   298  	// The ARN for the KMS encryption key. When specifying `kmsKeyArn`, `storageEncrypted` needs to be set to true.
   299  	KmsKeyArn pulumi.StringPtrInput
   300  	// A cluster parameter group to associate with the cluster.
   301  	NeptuneClusterParameterGroupName pulumi.StringPtrInput
   302  	// The name of the DB parameter group to apply to all instances of the DB cluster.
   303  	NeptuneInstanceParameterGroupName pulumi.StringPtrInput
   304  	// A Neptune subnet group to associate with this Neptune instance.
   305  	NeptuneSubnetGroupName pulumi.StringPtrInput
   306  	// The port on which the Neptune accepts connections. Default is `8182`.
   307  	Port pulumi.IntPtrInput
   308  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   309  	PreferredBackupWindow pulumi.StringPtrInput
   310  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   311  	PreferredMaintenanceWindow pulumi.StringPtrInput
   312  	// A read-only endpoint for the Neptune cluster, automatically load-balanced across replicas
   313  	ReaderEndpoint pulumi.StringPtrInput
   314  	// ARN of a source Neptune cluster or Neptune instance if this Neptune cluster is to be created as a Read Replica.
   315  	ReplicationSourceIdentifier pulumi.StringPtrInput
   316  	// If set, create the Neptune cluster as a serverless one. See Serverless for example block attributes.
   317  	ServerlessV2ScalingConfiguration ClusterServerlessV2ScalingConfigurationPtrInput
   318  	// Determines whether a final Neptune snapshot is created before the Neptune cluster is deleted. If true is specified, no Neptune snapshot is created. If false is specified, a Neptune snapshot is created before the Neptune cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   319  	SkipFinalSnapshot pulumi.BoolPtrInput
   320  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a Neptune cluster snapshot, or the ARN when specifying a Neptune snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   321  	SnapshotIdentifier pulumi.StringPtrInput
   322  	// Specifies whether the Neptune cluster is encrypted. The default is `false` if not specified.
   323  	StorageEncrypted pulumi.BoolPtrInput
   324  	// Storage type associated with the cluster `standard/iopt1`. Default: `standard`
   325  	StorageType pulumi.StringPtrInput
   326  	// A map of tags to assign to the Neptune cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   327  	Tags pulumi.StringMapInput
   328  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   329  	//
   330  	// Deprecated: Please use `tags` instead.
   331  	TagsAll pulumi.StringMapInput
   332  	// List of VPC security groups to associate with the Cluster
   333  	VpcSecurityGroupIds pulumi.StringArrayInput
   334  }
   335  
   336  func (ClusterState) ElementType() reflect.Type {
   337  	return reflect.TypeOf((*clusterState)(nil)).Elem()
   338  }
   339  
   340  type clusterArgs struct {
   341  	// Specifies whether upgrades between different major versions are allowed. You must set it to `true` when providing an `engineVersion` parameter that uses a different major version than the DB cluster's current version. Default is `false`.
   342  	AllowMajorVersionUpgrade *bool `pulumi:"allowMajorVersionUpgrade"`
   343  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`.
   344  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   345  	// A list of EC2 Availability Zones that instances in the Neptune cluster can be created in.
   346  	AvailabilityZones []string `pulumi:"availabilityZones"`
   347  	// The days to retain backups for. Default `1`
   348  	BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"`
   349  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   350  	ClusterIdentifier *string `pulumi:"clusterIdentifier"`
   351  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   352  	ClusterIdentifierPrefix *string `pulumi:"clusterIdentifierPrefix"`
   353  	// If set to true, tags are copied to any snapshot of the DB cluster that is created.
   354  	CopyTagsToSnapshot *bool `pulumi:"copyTagsToSnapshot"`
   355  	// A value that indicates whether the DB cluster has deletion protection enabled.The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   356  	DeletionProtection *bool `pulumi:"deletionProtection"`
   357  	// A list of the log types this DB cluster is configured to export to Cloudwatch Logs. Currently only supports `audit` and `slowquery`.
   358  	EnableCloudwatchLogsExports []string `pulumi:"enableCloudwatchLogsExports"`
   359  	// The name of the database engine to be used for this Neptune cluster. Defaults to `neptune`.
   360  	Engine *string `pulumi:"engine"`
   361  	// The database engine version.
   362  	EngineVersion *string `pulumi:"engineVersion"`
   363  	// The name of your final Neptune snapshot when this Neptune cluster is deleted. If omitted, no final snapshot will be made.
   364  	FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"`
   365  	// The global cluster identifier specified on `neptune.GlobalCluster`.
   366  	GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"`
   367  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled.
   368  	IamDatabaseAuthenticationEnabled *bool `pulumi:"iamDatabaseAuthenticationEnabled"`
   369  	// A List of ARNs for the IAM roles to associate to the Neptune Cluster.
   370  	IamRoles []string `pulumi:"iamRoles"`
   371  	// The ARN for the KMS encryption key. When specifying `kmsKeyArn`, `storageEncrypted` needs to be set to true.
   372  	KmsKeyArn *string `pulumi:"kmsKeyArn"`
   373  	// A cluster parameter group to associate with the cluster.
   374  	NeptuneClusterParameterGroupName *string `pulumi:"neptuneClusterParameterGroupName"`
   375  	// The name of the DB parameter group to apply to all instances of the DB cluster.
   376  	NeptuneInstanceParameterGroupName *string `pulumi:"neptuneInstanceParameterGroupName"`
   377  	// A Neptune subnet group to associate with this Neptune instance.
   378  	NeptuneSubnetGroupName *string `pulumi:"neptuneSubnetGroupName"`
   379  	// The port on which the Neptune accepts connections. Default is `8182`.
   380  	Port *int `pulumi:"port"`
   381  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   382  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   383  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   384  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   385  	// ARN of a source Neptune cluster or Neptune instance if this Neptune cluster is to be created as a Read Replica.
   386  	ReplicationSourceIdentifier *string `pulumi:"replicationSourceIdentifier"`
   387  	// If set, create the Neptune cluster as a serverless one. See Serverless for example block attributes.
   388  	ServerlessV2ScalingConfiguration *ClusterServerlessV2ScalingConfiguration `pulumi:"serverlessV2ScalingConfiguration"`
   389  	// Determines whether a final Neptune snapshot is created before the Neptune cluster is deleted. If true is specified, no Neptune snapshot is created. If false is specified, a Neptune snapshot is created before the Neptune cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   390  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   391  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a Neptune cluster snapshot, or the ARN when specifying a Neptune snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   392  	SnapshotIdentifier *string `pulumi:"snapshotIdentifier"`
   393  	// Specifies whether the Neptune cluster is encrypted. The default is `false` if not specified.
   394  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   395  	// Storage type associated with the cluster `standard/iopt1`. Default: `standard`
   396  	StorageType *string `pulumi:"storageType"`
   397  	// A map of tags to assign to the Neptune cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   398  	Tags map[string]string `pulumi:"tags"`
   399  	// List of VPC security groups to associate with the Cluster
   400  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   401  }
   402  
   403  // The set of arguments for constructing a Cluster resource.
   404  type ClusterArgs struct {
   405  	// Specifies whether upgrades between different major versions are allowed. You must set it to `true` when providing an `engineVersion` parameter that uses a different major version than the DB cluster's current version. Default is `false`.
   406  	AllowMajorVersionUpgrade pulumi.BoolPtrInput
   407  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`.
   408  	ApplyImmediately pulumi.BoolPtrInput
   409  	// A list of EC2 Availability Zones that instances in the Neptune cluster can be created in.
   410  	AvailabilityZones pulumi.StringArrayInput
   411  	// The days to retain backups for. Default `1`
   412  	BackupRetentionPeriod pulumi.IntPtrInput
   413  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   414  	ClusterIdentifier pulumi.StringPtrInput
   415  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   416  	ClusterIdentifierPrefix pulumi.StringPtrInput
   417  	// If set to true, tags are copied to any snapshot of the DB cluster that is created.
   418  	CopyTagsToSnapshot pulumi.BoolPtrInput
   419  	// A value that indicates whether the DB cluster has deletion protection enabled.The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   420  	DeletionProtection pulumi.BoolPtrInput
   421  	// A list of the log types this DB cluster is configured to export to Cloudwatch Logs. Currently only supports `audit` and `slowquery`.
   422  	EnableCloudwatchLogsExports pulumi.StringArrayInput
   423  	// The name of the database engine to be used for this Neptune cluster. Defaults to `neptune`.
   424  	Engine pulumi.StringPtrInput
   425  	// The database engine version.
   426  	EngineVersion pulumi.StringPtrInput
   427  	// The name of your final Neptune snapshot when this Neptune cluster is deleted. If omitted, no final snapshot will be made.
   428  	FinalSnapshotIdentifier pulumi.StringPtrInput
   429  	// The global cluster identifier specified on `neptune.GlobalCluster`.
   430  	GlobalClusterIdentifier pulumi.StringPtrInput
   431  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled.
   432  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrInput
   433  	// A List of ARNs for the IAM roles to associate to the Neptune Cluster.
   434  	IamRoles pulumi.StringArrayInput
   435  	// The ARN for the KMS encryption key. When specifying `kmsKeyArn`, `storageEncrypted` needs to be set to true.
   436  	KmsKeyArn pulumi.StringPtrInput
   437  	// A cluster parameter group to associate with the cluster.
   438  	NeptuneClusterParameterGroupName pulumi.StringPtrInput
   439  	// The name of the DB parameter group to apply to all instances of the DB cluster.
   440  	NeptuneInstanceParameterGroupName pulumi.StringPtrInput
   441  	// A Neptune subnet group to associate with this Neptune instance.
   442  	NeptuneSubnetGroupName pulumi.StringPtrInput
   443  	// The port on which the Neptune accepts connections. Default is `8182`.
   444  	Port pulumi.IntPtrInput
   445  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   446  	PreferredBackupWindow pulumi.StringPtrInput
   447  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   448  	PreferredMaintenanceWindow pulumi.StringPtrInput
   449  	// ARN of a source Neptune cluster or Neptune instance if this Neptune cluster is to be created as a Read Replica.
   450  	ReplicationSourceIdentifier pulumi.StringPtrInput
   451  	// If set, create the Neptune cluster as a serverless one. See Serverless for example block attributes.
   452  	ServerlessV2ScalingConfiguration ClusterServerlessV2ScalingConfigurationPtrInput
   453  	// Determines whether a final Neptune snapshot is created before the Neptune cluster is deleted. If true is specified, no Neptune snapshot is created. If false is specified, a Neptune snapshot is created before the Neptune cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   454  	SkipFinalSnapshot pulumi.BoolPtrInput
   455  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a Neptune cluster snapshot, or the ARN when specifying a Neptune snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   456  	SnapshotIdentifier pulumi.StringPtrInput
   457  	// Specifies whether the Neptune cluster is encrypted. The default is `false` if not specified.
   458  	StorageEncrypted pulumi.BoolPtrInput
   459  	// Storage type associated with the cluster `standard/iopt1`. Default: `standard`
   460  	StorageType pulumi.StringPtrInput
   461  	// A map of tags to assign to the Neptune cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   462  	Tags pulumi.StringMapInput
   463  	// List of VPC security groups to associate with the Cluster
   464  	VpcSecurityGroupIds pulumi.StringArrayInput
   465  }
   466  
   467  func (ClusterArgs) ElementType() reflect.Type {
   468  	return reflect.TypeOf((*clusterArgs)(nil)).Elem()
   469  }
   470  
   471  type ClusterInput interface {
   472  	pulumi.Input
   473  
   474  	ToClusterOutput() ClusterOutput
   475  	ToClusterOutputWithContext(ctx context.Context) ClusterOutput
   476  }
   477  
   478  func (*Cluster) ElementType() reflect.Type {
   479  	return reflect.TypeOf((**Cluster)(nil)).Elem()
   480  }
   481  
   482  func (i *Cluster) ToClusterOutput() ClusterOutput {
   483  	return i.ToClusterOutputWithContext(context.Background())
   484  }
   485  
   486  func (i *Cluster) ToClusterOutputWithContext(ctx context.Context) ClusterOutput {
   487  	return pulumi.ToOutputWithContext(ctx, i).(ClusterOutput)
   488  }
   489  
   490  // ClusterArrayInput is an input type that accepts ClusterArray and ClusterArrayOutput values.
   491  // You can construct a concrete instance of `ClusterArrayInput` via:
   492  //
   493  //	ClusterArray{ ClusterArgs{...} }
   494  type ClusterArrayInput interface {
   495  	pulumi.Input
   496  
   497  	ToClusterArrayOutput() ClusterArrayOutput
   498  	ToClusterArrayOutputWithContext(context.Context) ClusterArrayOutput
   499  }
   500  
   501  type ClusterArray []ClusterInput
   502  
   503  func (ClusterArray) ElementType() reflect.Type {
   504  	return reflect.TypeOf((*[]*Cluster)(nil)).Elem()
   505  }
   506  
   507  func (i ClusterArray) ToClusterArrayOutput() ClusterArrayOutput {
   508  	return i.ToClusterArrayOutputWithContext(context.Background())
   509  }
   510  
   511  func (i ClusterArray) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput {
   512  	return pulumi.ToOutputWithContext(ctx, i).(ClusterArrayOutput)
   513  }
   514  
   515  // ClusterMapInput is an input type that accepts ClusterMap and ClusterMapOutput values.
   516  // You can construct a concrete instance of `ClusterMapInput` via:
   517  //
   518  //	ClusterMap{ "key": ClusterArgs{...} }
   519  type ClusterMapInput interface {
   520  	pulumi.Input
   521  
   522  	ToClusterMapOutput() ClusterMapOutput
   523  	ToClusterMapOutputWithContext(context.Context) ClusterMapOutput
   524  }
   525  
   526  type ClusterMap map[string]ClusterInput
   527  
   528  func (ClusterMap) ElementType() reflect.Type {
   529  	return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem()
   530  }
   531  
   532  func (i ClusterMap) ToClusterMapOutput() ClusterMapOutput {
   533  	return i.ToClusterMapOutputWithContext(context.Background())
   534  }
   535  
   536  func (i ClusterMap) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput {
   537  	return pulumi.ToOutputWithContext(ctx, i).(ClusterMapOutput)
   538  }
   539  
   540  type ClusterOutput struct{ *pulumi.OutputState }
   541  
   542  func (ClusterOutput) ElementType() reflect.Type {
   543  	return reflect.TypeOf((**Cluster)(nil)).Elem()
   544  }
   545  
   546  func (o ClusterOutput) ToClusterOutput() ClusterOutput {
   547  	return o
   548  }
   549  
   550  func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOutput {
   551  	return o
   552  }
   553  
   554  // Specifies whether upgrades between different major versions are allowed. You must set it to `true` when providing an `engineVersion` parameter that uses a different major version than the DB cluster's current version. Default is `false`.
   555  func (o ClusterOutput) AllowMajorVersionUpgrade() pulumi.BoolOutput {
   556  	return o.ApplyT(func(v *Cluster) pulumi.BoolOutput { return v.AllowMajorVersionUpgrade }).(pulumi.BoolOutput)
   557  }
   558  
   559  // Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`.
   560  func (o ClusterOutput) ApplyImmediately() pulumi.BoolOutput {
   561  	return o.ApplyT(func(v *Cluster) pulumi.BoolOutput { return v.ApplyImmediately }).(pulumi.BoolOutput)
   562  }
   563  
   564  // The Neptune Cluster Amazon Resource Name (ARN)
   565  func (o ClusterOutput) Arn() pulumi.StringOutput {
   566  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   567  }
   568  
   569  // A list of EC2 Availability Zones that instances in the Neptune cluster can be created in.
   570  func (o ClusterOutput) AvailabilityZones() pulumi.StringArrayOutput {
   571  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput)
   572  }
   573  
   574  // The days to retain backups for. Default `1`
   575  func (o ClusterOutput) BackupRetentionPeriod() pulumi.IntPtrOutput {
   576  	return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.BackupRetentionPeriod }).(pulumi.IntPtrOutput)
   577  }
   578  
   579  // The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   580  func (o ClusterOutput) ClusterIdentifier() pulumi.StringOutput {
   581  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterIdentifier }).(pulumi.StringOutput)
   582  }
   583  
   584  // Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   585  func (o ClusterOutput) ClusterIdentifierPrefix() pulumi.StringOutput {
   586  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterIdentifierPrefix }).(pulumi.StringOutput)
   587  }
   588  
   589  // List of Neptune Instances that are a part of this cluster
   590  func (o ClusterOutput) ClusterMembers() pulumi.StringArrayOutput {
   591  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.ClusterMembers }).(pulumi.StringArrayOutput)
   592  }
   593  
   594  // The Neptune Cluster Resource ID
   595  func (o ClusterOutput) ClusterResourceId() pulumi.StringOutput {
   596  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterResourceId }).(pulumi.StringOutput)
   597  }
   598  
   599  // If set to true, tags are copied to any snapshot of the DB cluster that is created.
   600  func (o ClusterOutput) CopyTagsToSnapshot() pulumi.BoolPtrOutput {
   601  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.CopyTagsToSnapshot }).(pulumi.BoolPtrOutput)
   602  }
   603  
   604  // A value that indicates whether the DB cluster has deletion protection enabled.The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   605  func (o ClusterOutput) DeletionProtection() pulumi.BoolPtrOutput {
   606  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.DeletionProtection }).(pulumi.BoolPtrOutput)
   607  }
   608  
   609  // A list of the log types this DB cluster is configured to export to Cloudwatch Logs. Currently only supports `audit` and `slowquery`.
   610  func (o ClusterOutput) EnableCloudwatchLogsExports() pulumi.StringArrayOutput {
   611  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.EnableCloudwatchLogsExports }).(pulumi.StringArrayOutput)
   612  }
   613  
   614  // The DNS address of the Neptune instance
   615  func (o ClusterOutput) Endpoint() pulumi.StringOutput {
   616  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
   617  }
   618  
   619  // The name of the database engine to be used for this Neptune cluster. Defaults to `neptune`.
   620  func (o ClusterOutput) Engine() pulumi.StringPtrOutput {
   621  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.Engine }).(pulumi.StringPtrOutput)
   622  }
   623  
   624  // The database engine version.
   625  func (o ClusterOutput) EngineVersion() pulumi.StringOutput {
   626  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput)
   627  }
   628  
   629  // The name of your final Neptune snapshot when this Neptune cluster is deleted. If omitted, no final snapshot will be made.
   630  func (o ClusterOutput) FinalSnapshotIdentifier() pulumi.StringPtrOutput {
   631  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.FinalSnapshotIdentifier }).(pulumi.StringPtrOutput)
   632  }
   633  
   634  // The global cluster identifier specified on `neptune.GlobalCluster`.
   635  func (o ClusterOutput) GlobalClusterIdentifier() pulumi.StringPtrOutput {
   636  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.GlobalClusterIdentifier }).(pulumi.StringPtrOutput)
   637  }
   638  
   639  // The Route53 Hosted Zone ID of the endpoint
   640  func (o ClusterOutput) HostedZoneId() pulumi.StringOutput {
   641  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.HostedZoneId }).(pulumi.StringOutput)
   642  }
   643  
   644  // Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled.
   645  func (o ClusterOutput) IamDatabaseAuthenticationEnabled() pulumi.BoolPtrOutput {
   646  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.IamDatabaseAuthenticationEnabled }).(pulumi.BoolPtrOutput)
   647  }
   648  
   649  // A List of ARNs for the IAM roles to associate to the Neptune Cluster.
   650  func (o ClusterOutput) IamRoles() pulumi.StringArrayOutput {
   651  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.IamRoles }).(pulumi.StringArrayOutput)
   652  }
   653  
   654  // The ARN for the KMS encryption key. When specifying `kmsKeyArn`, `storageEncrypted` needs to be set to true.
   655  func (o ClusterOutput) KmsKeyArn() pulumi.StringOutput {
   656  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.KmsKeyArn }).(pulumi.StringOutput)
   657  }
   658  
   659  // A cluster parameter group to associate with the cluster.
   660  func (o ClusterOutput) NeptuneClusterParameterGroupName() pulumi.StringPtrOutput {
   661  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.NeptuneClusterParameterGroupName }).(pulumi.StringPtrOutput)
   662  }
   663  
   664  // The name of the DB parameter group to apply to all instances of the DB cluster.
   665  func (o ClusterOutput) NeptuneInstanceParameterGroupName() pulumi.StringPtrOutput {
   666  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.NeptuneInstanceParameterGroupName }).(pulumi.StringPtrOutput)
   667  }
   668  
   669  // A Neptune subnet group to associate with this Neptune instance.
   670  func (o ClusterOutput) NeptuneSubnetGroupName() pulumi.StringOutput {
   671  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.NeptuneSubnetGroupName }).(pulumi.StringOutput)
   672  }
   673  
   674  // The port on which the Neptune accepts connections. Default is `8182`.
   675  func (o ClusterOutput) Port() pulumi.IntPtrOutput {
   676  	return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.Port }).(pulumi.IntPtrOutput)
   677  }
   678  
   679  // The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   680  func (o ClusterOutput) PreferredBackupWindow() pulumi.StringOutput {
   681  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.PreferredBackupWindow }).(pulumi.StringOutput)
   682  }
   683  
   684  // The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   685  func (o ClusterOutput) PreferredMaintenanceWindow() pulumi.StringOutput {
   686  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.PreferredMaintenanceWindow }).(pulumi.StringOutput)
   687  }
   688  
   689  // A read-only endpoint for the Neptune cluster, automatically load-balanced across replicas
   690  func (o ClusterOutput) ReaderEndpoint() pulumi.StringOutput {
   691  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ReaderEndpoint }).(pulumi.StringOutput)
   692  }
   693  
   694  // ARN of a source Neptune cluster or Neptune instance if this Neptune cluster is to be created as a Read Replica.
   695  func (o ClusterOutput) ReplicationSourceIdentifier() pulumi.StringPtrOutput {
   696  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.ReplicationSourceIdentifier }).(pulumi.StringPtrOutput)
   697  }
   698  
   699  // If set, create the Neptune cluster as a serverless one. See Serverless for example block attributes.
   700  func (o ClusterOutput) ServerlessV2ScalingConfiguration() ClusterServerlessV2ScalingConfigurationPtrOutput {
   701  	return o.ApplyT(func(v *Cluster) ClusterServerlessV2ScalingConfigurationPtrOutput {
   702  		return v.ServerlessV2ScalingConfiguration
   703  	}).(ClusterServerlessV2ScalingConfigurationPtrOutput)
   704  }
   705  
   706  // Determines whether a final Neptune snapshot is created before the Neptune cluster is deleted. If true is specified, no Neptune snapshot is created. If false is specified, a Neptune snapshot is created before the Neptune cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   707  func (o ClusterOutput) SkipFinalSnapshot() pulumi.BoolPtrOutput {
   708  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.SkipFinalSnapshot }).(pulumi.BoolPtrOutput)
   709  }
   710  
   711  // Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a Neptune cluster snapshot, or the ARN when specifying a Neptune snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   712  func (o ClusterOutput) SnapshotIdentifier() pulumi.StringPtrOutput {
   713  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.SnapshotIdentifier }).(pulumi.StringPtrOutput)
   714  }
   715  
   716  // Specifies whether the Neptune cluster is encrypted. The default is `false` if not specified.
   717  func (o ClusterOutput) StorageEncrypted() pulumi.BoolPtrOutput {
   718  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.StorageEncrypted }).(pulumi.BoolPtrOutput)
   719  }
   720  
   721  // Storage type associated with the cluster `standard/iopt1`. Default: `standard`
   722  func (o ClusterOutput) StorageType() pulumi.StringOutput {
   723  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.StorageType }).(pulumi.StringOutput)
   724  }
   725  
   726  // A map of tags to assign to the Neptune cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   727  func (o ClusterOutput) Tags() pulumi.StringMapOutput {
   728  	return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   729  }
   730  
   731  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   732  //
   733  // Deprecated: Please use `tags` instead.
   734  func (o ClusterOutput) TagsAll() pulumi.StringMapOutput {
   735  	return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   736  }
   737  
   738  // List of VPC security groups to associate with the Cluster
   739  func (o ClusterOutput) VpcSecurityGroupIds() pulumi.StringArrayOutput {
   740  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.VpcSecurityGroupIds }).(pulumi.StringArrayOutput)
   741  }
   742  
   743  type ClusterArrayOutput struct{ *pulumi.OutputState }
   744  
   745  func (ClusterArrayOutput) ElementType() reflect.Type {
   746  	return reflect.TypeOf((*[]*Cluster)(nil)).Elem()
   747  }
   748  
   749  func (o ClusterArrayOutput) ToClusterArrayOutput() ClusterArrayOutput {
   750  	return o
   751  }
   752  
   753  func (o ClusterArrayOutput) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput {
   754  	return o
   755  }
   756  
   757  func (o ClusterArrayOutput) Index(i pulumi.IntInput) ClusterOutput {
   758  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Cluster {
   759  		return vs[0].([]*Cluster)[vs[1].(int)]
   760  	}).(ClusterOutput)
   761  }
   762  
   763  type ClusterMapOutput struct{ *pulumi.OutputState }
   764  
   765  func (ClusterMapOutput) ElementType() reflect.Type {
   766  	return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem()
   767  }
   768  
   769  func (o ClusterMapOutput) ToClusterMapOutput() ClusterMapOutput {
   770  	return o
   771  }
   772  
   773  func (o ClusterMapOutput) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput {
   774  	return o
   775  }
   776  
   777  func (o ClusterMapOutput) MapIndex(k pulumi.StringInput) ClusterOutput {
   778  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Cluster {
   779  		return vs[0].(map[string]*Cluster)[vs[1].(string)]
   780  	}).(ClusterOutput)
   781  }
   782  
   783  func init() {
   784  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInput)(nil)).Elem(), &Cluster{})
   785  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterArrayInput)(nil)).Elem(), ClusterArray{})
   786  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterMapInput)(nil)).Elem(), ClusterMap{})
   787  	pulumi.RegisterOutputType(ClusterOutput{})
   788  	pulumi.RegisterOutputType(ClusterArrayOutput{})
   789  	pulumi.RegisterOutputType(ClusterMapOutput{})
   790  }