{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://aws.amazon.com/schemas/redshift/cluster.json", "title": "Amazon Redshift Cluster", "description": "Schema for an Amazon Redshift provisioned cluster resource, representing a fully managed petabyte-scale data warehouse in the AWS cloud. Includes cluster configuration, networking, security, and operational metadata as described in the Amazon Redshift Management Guide.", "type": "object", "required": [ "ClusterIdentifier", "NodeType", "MasterUsername", "DBName" ], "properties": { "ClusterIdentifier": { "type": "string", "description": "The unique identifier of the cluster. Must be lowercase, begin with a letter, contain only alphanumeric characters and hyphens, and be between 1 and 63 characters.", "pattern": "^[a-z][a-z0-9-]*$", "minLength": 1, "maxLength": 63, "examples": ["my-redshift-cluster"] }, "ClusterStatus": { "type": "string", "description": "The current state of the cluster", "enum": [ "available", "creating", "deleting", "final-snapshot", "hardware-failure", "incompatible-hsm", "incompatible-network", "incompatible-parameters", "incompatible-restore", "modifying", "paused", "rebooting", "renaming", "resizing", "rotating-keys", "storage-full", "updating-hsm" ] }, "ClusterAvailabilityStatus": { "type": "string", "description": "The availability status of the cluster for queries", "enum": [ "Available", "Unavailable", "Maintenance", "Modifying" ] }, "NodeType": { "type": "string", "description": "The node type for the nodes in the cluster", "enum": [ "dc2.large", "dc2.8xlarge", "ra3.xlplus", "ra3.4xlarge", "ra3.16xlarge" ] }, "NumberOfNodes": { "type": "integer", "description": "The number of compute nodes in the cluster. For single-node clusters this is 1.", "minimum": 1, "maximum": 128, "default": 1 }, "ClusterType": { "type": "string", "description": "The type of the cluster based on number of nodes", "enum": [ "single-node", "multi-node" ] }, "DBName": { "type": "string", "description": "The name of the initial database created when the cluster was provisioned. Default is 'dev'.", "default": "dev", "examples": ["dev", "mydb"] }, "MasterUsername": { "type": "string", "description": "The admin user name for the cluster. Must be lowercase, begin with a letter, contain only alphanumeric characters, and be between 1 and 128 characters.", "minLength": 1, "maxLength": 128 }, "Endpoint": { "$ref": "#/$defs/Endpoint" }, "ClusterCreateTime": { "type": "string", "format": "date-time", "description": "The date and time that the cluster was created" }, "AutomatedSnapshotRetentionPeriod": { "type": "integer", "description": "The number of days that automatic cluster snapshots are retained. Default is 1.", "minimum": 0, "maximum": 35, "default": 1 }, "ManualSnapshotRetentionPeriod": { "type": "integer", "description": "The default number of days to retain a manual snapshot. -1 means indefinitely.", "minimum": -1, "maximum": 3653, "default": -1 }, "ClusterSecurityGroups": { "type": "array", "description": "List of cluster security groups associated with the cluster", "items": { "$ref": "#/$defs/ClusterSecurityGroupMembership" } }, "VpcSecurityGroups": { "type": "array", "description": "List of VPC security groups associated with the cluster", "items": { "$ref": "#/$defs/VpcSecurityGroupMembership" } }, "ClusterParameterGroups": { "type": "array", "description": "List of cluster parameter groups associated with this cluster", "items": { "$ref": "#/$defs/ClusterParameterGroupStatus" } }, "ClusterSubnetGroupName": { "type": "string", "description": "The name of the subnet group associated with the cluster" }, "VpcId": { "type": "string", "description": "The identifier of the VPC the cluster is in", "pattern": "^vpc-[a-z0-9]+$", "examples": ["vpc-0abc123def456"] }, "AvailabilityZone": { "type": "string", "description": "The name of the Availability Zone in which the cluster is located", "examples": ["us-east-1a"] }, "PreferredMaintenanceWindow": { "type": "string", "description": "The weekly time range for system maintenance in UTC, formatted as ddd:hh24:mi-ddd:hh24:mi", "examples": ["sun:05:00-sun:05:30"] }, "ClusterVersion": { "type": "string", "description": "The version ID of the Amazon Redshift engine running on the cluster", "examples": ["1.0"] }, "AllowVersionUpgrade": { "type": "boolean", "description": "Whether major version upgrades are applied automatically during the maintenance window", "default": true }, "PubliclyAccessible": { "type": "boolean", "description": "Whether the cluster can be accessed from a public network", "default": false }, "Encrypted": { "type": "boolean", "description": "Whether data in the cluster is encrypted at rest", "default": false }, "KmsKeyId": { "type": "string", "description": "The AWS KMS key ID used for encryption of data at rest", "examples": ["arn:aws:kms:us-east-1:123456789012:key/abcd1234-ef56-gh78-ij90-klmn1234opqr"] }, "EnhancedVpcRouting": { "type": "boolean", "description": "Whether enhanced VPC routing is enabled, forcing all COPY and UNLOAD traffic through the VPC", "default": false }, "IamRoles": { "type": "array", "description": "List of IAM roles associated with the cluster for authorization", "items": { "$ref": "#/$defs/ClusterIamRole" } }, "MaintenanceTrackName": { "type": "string", "description": "The name of the maintenance track for the cluster", "enum": [ "current", "trailing" ], "default": "current" }, "ElasticResizeNumberOfNodeOptions": { "type": "string", "description": "The number of nodes that you can resize the cluster to using elastic resize" }, "AquaConfiguration": { "$ref": "#/$defs/AquaConfiguration" }, "TotalStorageCapacityInMegaBytes": { "type": "integer", "format": "int64", "description": "The total storage capacity of the cluster in megabytes" }, "ClusterNamespaceArn": { "type": "string", "description": "The namespace ARN of the cluster", "examples": ["arn:aws:redshift:us-east-1:123456789012:namespace:abcd1234-ef56-gh78-ij90"] }, "Tags": { "type": "array", "description": "Tags associated with the cluster", "items": { "$ref": "#/$defs/Tag" } } }, "$defs": { "Endpoint": { "type": "object", "description": "Connection endpoint for the cluster", "properties": { "Address": { "type": "string", "description": "The DNS address of the cluster endpoint", "examples": ["my-redshift-cluster.abc123xyz.us-east-1.redshift.amazonaws.com"] }, "Port": { "type": "integer", "description": "The port that the database engine is listening on", "default": 5439, "examples": [5439] }, "VpcEndpoints": { "type": "array", "description": "List of VPC endpoints for the cluster", "items": { "type": "object", "properties": { "VpcEndpointId": { "type": "string", "description": "The VPC endpoint identifier" }, "VpcId": { "type": "string", "description": "The VPC identifier" }, "NetworkInterfaces": { "type": "array", "description": "Network interfaces of the endpoint", "items": { "type": "object", "properties": { "NetworkInterfaceId": { "type": "string", "description": "The network interface identifier" }, "SubnetId": { "type": "string", "description": "The subnet identifier" }, "PrivateIpAddress": { "type": "string", "format": "ipv4", "description": "The private IP address of the interface" }, "AvailabilityZone": { "type": "string", "description": "The Availability Zone" } } } } } } } } }, "ClusterSecurityGroupMembership": { "type": "object", "description": "Describes a cluster security group membership", "properties": { "ClusterSecurityGroupName": { "type": "string", "description": "The name of the cluster security group" }, "Status": { "type": "string", "description": "The status of the cluster security group", "enum": ["active", "adding", "removing"] } } }, "VpcSecurityGroupMembership": { "type": "object", "description": "Describes a VPC security group membership", "properties": { "VpcSecurityGroupId": { "type": "string", "description": "The identifier of the VPC security group" }, "Status": { "type": "string", "description": "The status of the VPC security group", "enum": ["active", "adding", "removing"] } } }, "ClusterParameterGroupStatus": { "type": "object", "description": "Describes the status of a cluster parameter group", "properties": { "ParameterGroupName": { "type": "string", "description": "The name of the cluster parameter group" }, "ParameterApplyStatus": { "type": "string", "description": "The status of parameter updates", "enum": ["in-sync", "pending-reboot"] }, "ClusterParameterStatusList": { "type": "array", "description": "List of individual parameter statuses", "items": { "type": "object", "properties": { "ParameterName": { "type": "string", "description": "The name of the parameter" }, "ParameterApplyType": { "type": "string", "description": "The apply type of the parameter", "enum": ["static", "dynamic"] }, "ParameterApplyStatus": { "type": "string", "description": "The status of the parameter" } } } } } }, "ClusterIamRole": { "type": "object", "description": "An IAM role associated with the cluster", "properties": { "IamRoleArn": { "type": "string", "description": "The ARN of the IAM role", "pattern": "^arn:aws:iam::\\d{12}:role/.+$", "examples": ["arn:aws:iam::123456789012:role/RedshiftCopyRole"] }, "ApplyStatus": { "type": "string", "description": "The status of the IAM role association", "enum": ["in-sync", "adding", "removing"] } } }, "AquaConfiguration": { "type": "object", "description": "AQUA (Advanced Query Accelerator) configuration for the cluster", "properties": { "AquaStatus": { "type": "string", "description": "The value represents how the cluster is configured for using AQUA", "enum": ["enabled", "disabled", "applying"] }, "AquaConfigurationStatus": { "type": "string", "description": "The user-configured AQUA setting", "enum": ["enabled", "disabled", "auto"] } } }, "Tag": { "type": "object", "description": "A tag consisting of a key-value pair", "required": ["Key"], "properties": { "Key": { "type": "string", "description": "The key of the tag. Maximum 128 Unicode characters.", "maxLength": 128 }, "Value": { "type": "string", "description": "The value of the tag. Maximum 256 Unicode characters.", "maxLength": 256 } } } } }