import * as core from "@terrascript/core"; export interface ClusterArgs extends core.ResourceArgs { /** * (Optional) Specifies whether upgrades between different major versions are allowed. You must set it * to `true` when providing an `engine_version` parameter that uses a different major version than the * DB cluster's current version. Default is `false`. */ allowMajorVersionUpgrade?: boolean | core.BooleanOut; /** * (Optional) Specifies whether any cluster modifications are applied immediately, or during the next m * aintenance window. Default is `false`. */ applyImmediately?: boolean | core.BooleanOut; /** * (Optional) A list of EC2 Availability Zones that instances in the Neptune cluster can be created in. */ availabilityZones?: core.Array | core.ArrayOut; /** * (Optional) The days to retain backups for. Default `1` */ backupRetentionPeriod?: number | core.NumberOut; /** * (Optional, Forces new resources) The cluster identifier. If omitted, Terraform will assign a random, * unique identifier. */ clusterIdentifier?: string | core.StringOut; /** * (Optional, Forces new resource) Creates a unique cluster identifier beginning with the specified pre * fix. Conflicts with `cluster_identifier`. */ clusterIdentifierPrefix?: string | core.StringOut; /** * (Optional) If set to true, tags are copied to any snapshot of the DB cluster that is created. */ copyTagsToSnapshot?: boolean | core.BooleanOut; /** * (Optional) A value that indicates whether the DB cluster has deletion protection enabled.The databas * e can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. */ deletionProtection?: boolean | core.BooleanOut; /** * (Optional) A list of the log types this DB cluster is configured to export to Cloudwatch Logs. Curre * ntly only supports `audit`. */ enableCloudwatchLogsExports?: | core.Array | core.ArrayOut; /** * (Optional) The name of the database engine to be used for this Neptune cluster. Defaults to `neptune * . */ engine?: string | core.StringOut; /** * (Optional) The database engine version. */ engineVersion?: string | core.StringOut; /** * (Optional) The name of your final Neptune snapshot when this Neptune cluster is deleted. If omitted, * no final snapshot will be made. */ finalSnapshotIdentifier?: string | core.StringOut; /** * (Optional) Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to * database accounts is enabled. */ iamDatabaseAuthenticationEnabled?: boolean | core.BooleanOut; /** * (Optional) A List of ARNs for the IAM roles to associate to the Neptune Cluster. */ iamRoles?: core.Array | core.ArrayOut; /** * (Optional) The ARN for the KMS encryption key. When specifying `kms_key_arn`, `storage_encrypted` ne * eds to be set to true. */ kmsKeyArn?: string | core.StringOut; /** * (Optional) A cluster parameter group to associate with the cluster. */ neptuneClusterParameterGroupName?: string | core.StringOut; /** * (Optional) A Neptune subnet group to associate with this Neptune instance. */ neptuneSubnetGroupName?: string | core.StringOut; /** * (Optional) The port on which the Neptune accepts connections. Default is `8182`. */ port?: number | core.NumberOut; /** * (Optional) 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 */ preferredBackupWindow?: string | core.StringOut; /** * (Optional) The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00 * wed:04:30 */ preferredMaintenanceWindow?: string | core.StringOut; /** * (Optional) ARN of a source Neptune cluster or Neptune instance if this Neptune cluster is to be crea * ted as a Read Replica. */ replicationSourceIdentifier?: string | core.StringOut; /** * (Optional) Determines whether a final Neptune snapshot is created before the Neptune cluster is dele * ted. 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 `final_snapshot_identifier`. * Default is `false`. */ skipFinalSnapshot?: boolean | core.BooleanOut; /** * (Optional) Specifies whether or not to create this cluster from a snapshot. You can use either the n * ame or ARN when specifying a Neptune cluster snapshot, or the ARN when specifying a Neptune snapshot * . */ snapshotIdentifier?: string | core.StringOut; /** * (Optional) Specifies whether the Neptune cluster is encrypted. The default is `false` if not specifi * ed. */ storageEncrypted?: boolean | core.BooleanOut; /** * (Optional) A map of tags to assign to the Neptune cluster. If configured with a provider [`default_t * ags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_ * tags-configuration-block) present, tags with matching keys will overwrite those defined at the provi * der-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) List of VPC security groups to associate with the Cluster */ vpcSecurityGroupIds?: core.Array | core.ArrayOut; } export class Cluster extends core.Resource { /** * (Optional) Specifies whether upgrades between different major versions are allowed. You must set it * to `true` when providing an `engine_version` parameter that uses a different major version than the * DB cluster's current version. Default is `false`. */ @core.attr(Boolean, { computed: true }) public allowMajorVersionUpgrade?: boolean | core.BooleanOut; /** * (Optional) Specifies whether any cluster modifications are applied immediately, or during the next m * aintenance window. Default is `false`. */ @core.attr(Boolean, { computed: true }) public applyImmediately?: boolean | core.BooleanOut; /** * The Neptune Cluster Amazon Resource Name (ARN) */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) A list of EC2 Availability Zones that instances in the Neptune cluster can be created in. */ @core.attr(String, { computed: true, kind: "array" }) public availabilityZones?: core.Array | core.ArrayOut; /** * (Optional) The days to retain backups for. Default `1` */ @core.attr(Number) public backupRetentionPeriod?: number | core.NumberOut; /** * (Optional, Forces new resources) The cluster identifier. If omitted, Terraform will assign a random, * unique identifier. */ @core.attr(String, { computed: true }) public clusterIdentifier?: string | core.StringOut; /** * (Optional, Forces new resource) Creates a unique cluster identifier beginning with the specified pre * fix. Conflicts with `cluster_identifier`. */ @core.attr(String, { computed: true }) public clusterIdentifierPrefix?: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public clusterMembers!: core.Array | core.ArrayOut; /** * The Neptune Cluster Resource ID */ @core.attr(String, { computed: true }) public clusterResourceId!: string | core.StringOut; /** * (Optional) If set to true, tags are copied to any snapshot of the DB cluster that is created. */ @core.attr(Boolean) public copyTagsToSnapshot?: boolean | core.BooleanOut; /** * (Optional) A value that indicates whether the DB cluster has deletion protection enabled.The databas * e can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. */ @core.attr(Boolean) public deletionProtection?: boolean | core.BooleanOut; /** * (Optional) A list of the log types this DB cluster is configured to export to Cloudwatch Logs. Curre * ntly only supports `audit`. */ @core.attr(String, { kind: "array" }) public enableCloudwatchLogsExports?: | core.Array | core.ArrayOut; /** * The DNS address of the Neptune instance */ @core.attr(String, { computed: true }) public endpoint!: string | core.StringOut; /** * (Optional) The name of the database engine to be used for this Neptune cluster. Defaults to `neptune * . */ @core.attr(String) public engine?: string | core.StringOut; /** * (Optional) The database engine version. */ @core.attr(String, { computed: true }) public engineVersion?: string | core.StringOut; /** * (Optional) The name of your final Neptune snapshot when this Neptune cluster is deleted. If omitted, * no final snapshot will be made. */ @core.attr(String) public finalSnapshotIdentifier?: string | core.StringOut; /** * The Route53 Hosted Zone ID of the endpoint */ @core.attr(String, { computed: true }) public hostedZoneId!: string | core.StringOut; /** * (Optional) Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to * database accounts is enabled. */ @core.attr(Boolean) public iamDatabaseAuthenticationEnabled?: boolean | core.BooleanOut; /** * (Optional) A List of ARNs for the IAM roles to associate to the Neptune Cluster. */ @core.attr(String, { kind: "array" }) public iamRoles?: core.Array | core.ArrayOut; /** * The Neptune Cluster Identifier */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The ARN for the KMS encryption key. When specifying `kms_key_arn`, `storage_encrypted` ne * eds to be set to true. */ @core.attr(String, { computed: true }) public kmsKeyArn?: string | core.StringOut; /** * (Optional) A cluster parameter group to associate with the cluster. */ @core.attr(String) public neptuneClusterParameterGroupName?: string | core.StringOut; /** * (Optional) A Neptune subnet group to associate with this Neptune instance. */ @core.attr(String, { computed: true }) public neptuneSubnetGroupName?: string | core.StringOut; /** * (Optional) The port on which the Neptune accepts connections. Default is `8182`. */ @core.attr(Number) public port?: number | core.NumberOut; /** * (Optional) 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 */ @core.attr(String, { computed: true }) public preferredBackupWindow?: string | core.StringOut; /** * (Optional) The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00 * wed:04:30 */ @core.attr(String, { computed: true }) public preferredMaintenanceWindow?: string | core.StringOut; /** * A read-only endpoint for the Neptune cluster, automatically load-balanced across replicas */ @core.attr(String, { computed: true }) public readerEndpoint!: string | core.StringOut; /** * (Optional) ARN of a source Neptune cluster or Neptune instance if this Neptune cluster is to be crea * ted as a Read Replica. */ @core.attr(String) public replicationSourceIdentifier?: string | core.StringOut; /** * (Optional) Determines whether a final Neptune snapshot is created before the Neptune cluster is dele * ted. 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 `final_snapshot_identifier`. * Default is `false`. */ @core.attr(Boolean) public skipFinalSnapshot?: boolean | core.BooleanOut; /** * (Optional) Specifies whether or not to create this cluster from a snapshot. You can use either the n * ame or ARN when specifying a Neptune cluster snapshot, or the ARN when specifying a Neptune snapshot * . */ @core.attr(String) public snapshotIdentifier?: string | core.StringOut; /** * (Optional) Specifies whether the Neptune cluster is encrypted. The default is `false` if not specifi * ed. */ @core.attr(Boolean) public storageEncrypted?: boolean | core.BooleanOut; /** * (Optional) A map of tags to assign to the Neptune cluster. If configured with a provider [`default_t * ags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_ * tags-configuration-block) present, tags with matching keys will overwrite those defined at the provi * der-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) List of VPC security groups to associate with the Cluster */ @core.attr(String, { computed: true, kind: "array" }) public vpcSecurityGroupIds?: | core.Array | core.ArrayOut; constructor(name: string, args?: ClusterArgs) { super(name, "aws_neptune_cluster", args); } public override getNamespace(): string { return "aws_neptune"; } }