Definitions for @turbot/aws-redshift

cluster

{
"type": "object",
"properties": {
"ClusterIdentifier": {
"$ref": "#/definitions/clusterIdentifier",
"description": "The unique identifier of the cluster."
},
"NodeType": {
"type": "string",
"description": "The node type for the nodes in the cluster."
},
"ClusterStatus": {
"$ref": "#/definitions/clusterStatus",
"description": "The current state of the cluster."
},
"ClusterAvailabilityStatus": {
"type": "string"
},
"ModifyStatus": {
"type": "string",
"description": "The status of a modify operation, if any, initiated for the cluster."
},
"MasterUsername": {
"type": "string",
"description": "The master user name for the cluster. This name is used to connect to the database that is specified in the DBName parameter. "
},
"DBName": {
"type": "string"
},
"Endpoint": {
"type": "object",
"description": "The connection endpoint."
},
"ClusterCreateTime": {
"$ref": "turbot#/definitions/isoTimestamp",
"description": "The date and time that the cluster was created."
},
"AutomatedSnapshotRetentionPeriod": {
"type": "integer",
"description": "The number of days that automatic cluster snapshots are retained."
},
"ManualSnapshotRetentionPeriod": {
"type": "integer"
},
"ClusterSecurityGroups": {
"type": "array"
},
"VpcSecurityGroups": {
"type": "array",
"description": "A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC."
},
"ClusterParameterGroups": {
"type": "array",
"description": "The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status."
},
"ClusterSubnetGroupName": {
"type": "string",
"description": "The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC."
},
"VpcId": {
"type": "string",
"description": "The identifier of the VPC the cluster is in, if the cluster is in a VPC."
},
"AvailabilityZone": {
"type": "string",
"description": "The name of the Availability Zone in which the cluster is located."
},
"PreferredMaintenanceWindow": {
"type": "string",
"description": "The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur."
},
"PendingModifiedValues": {
"type": "object",
"description": "A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements."
},
"ClusterVersion": {
"type": "string",
"description": "The version ID of the Amazon Redshift engine that is running on the cluster."
},
"AllowVersionUpgrade": {
"type": "boolean",
"description": "A boolean value that, if true, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. "
},
"NumberOfNodes": {
"type": "integer",
"description": "The number of compute nodes in the cluster."
},
"PubliclyAccessible": {
"type": "boolean",
"description": "A boolean value that, if true, indicates that the cluster can be accessed from a public network."
},
"Encrypted": {
"type": "boolean",
"description": "A boolean value that, if true, indicates that data in the cluster is encrypted at rest."
},
"RestoreStatus": {
"type": "string",
"description": "A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot."
},
"DataTransferProgress": {
"type": "string"
},
"HsmStatus": {
"type": "string",
"description": "A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying"
},
"ClusterSnapshotCopyStatus": {
"type": "string",
"description": "A value that returns the destination region and retention period that are configured for cross-region snapshot copy."
},
"ClusterPublicKey": {
"type": "string",
"description": "The public key for the cluster."
},
"ClusterNodes": {
"type": "array",
"description": "The nodes in the cluster."
},
"ElasticIpStatus": {
"type": "string",
"description": "The status of the elastic IP (EIP) address."
},
"ClusterRevisionNumber": {
"type": "string",
"description": "The specific revision number of the database in the cluster."
},
"KmsKeyId": {
"type": "string",
"description": "The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster."
},
"EnhancedVpcRouting": {
"type": "boolean",
"description": "An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see \"https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html\" Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide. If this option is true, enhanced VPC routing is enabled. Default: false"
},
"IamRoles": {
"type": "array",
"description": "A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services."
},
"PendingActions": {
"type": "array",
"description": "Cluster operations that are waiting to be started."
},
"MaintenanceTrackName": {
"type": "string",
"description": "The name of the maintenance track for the cluster."
},
"ElasticResizeNumberOfNodeOptions": {
"type": "string",
"description": "The number of nodes that you can resize the cluster to with the elastic resize method. "
},
"DeferredMaintenanceWindows": {
"type": "array",
"description": "Describes a group of DeferredMaintenanceWindow objects."
},
"SnapshotScheduleIdentifier": {
"type": "string",
"description": "A unique identifier for the cluster snapshot schedule."
},
"SnapshotScheduleState": {
"type": "string",
"description": "The current state of the cluster snapshot schedule."
},
"ExpectedNextSnapshotScheduleTime": {
"$ref": "turbot#/definitions/isoTimestamp",
"description": "The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. "
},
"ExpectedNextSnapshotScheduleTimeStatus": {
"type": "string",
"description": " The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled."
},
"NextMaintenanceWindowStartTime": {
"$ref": "turbot#/definitions/isoTimestamp",
"description": "The date and time in UTC when system maintenance can begin."
},
"ResizeInfo": {
"type": "boolean"
},
"LoggingEnabled": {
"type": "boolean"
},
"BucketName": {
"type": "string"
},
"S3KeyPrefix": {
"type": "string"
},
"Tags": {
"$ref": "aws#/definitions/tagList"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/clusterAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/clusterIdentifier"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"test": [
{
"description": "Valid - All properties",
"input": {
"ClusterIdentifier": "test",
"Tags": [
{
"Key": "foo",
"Value": "bar"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:cluster:mycluster"
],
"tags": {
"foo": "bar"
},
"title": "test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "Invalid - Missing ClusterIdentifier",
"input": {
"Tags": [
{
"Key": "foo",
"Value": "bar"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:cluster:mycluster"
],
"tags": {
"foo": "bar"
},
"title": "test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
},
"expected": false
},
{
"description": "Invalid - Missing turbot data",
"input": {
"ClusterIdentifier": "test",
"Tags": [
{
"Key": "foo",
"Value": "bar"
}
],
"expected": false
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/cluster",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:redshift:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:cluster:[a-z][-a-z0-9]*$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:redshift:us-east-1:123456789012:clusters:mycluster",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:redshift:use-east-12:123456789012:cluster:mycluster",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:redshift:us-east-1:1234567890123:cluster:mycluster",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterAka",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterIdentifier

{
"type": "string",
"pattern": "^[a-z][-a-z0-9]*$",
"tests": [
{
"input": "mycluster"
},
{
"input": "turbot-cluster"
},
{
"description": "invalid - cannot start with number",
"input": "123mycluster",
"expected": false
},
{
"description": "invalid - cannot start with any special char",
"input": "@@123234",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterIdentifier",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterParameterGroup

{
"type": "object",
"properties": {
"ParameterGroupName": {
"$ref": "#/definitions/parameterGroupName"
},
"Tags": {
"$ref": "aws#/definitions/tagList"
},
"ParameterGroupFamily": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/parameterGroupAka"
}
},
"title": {
"$ref": "#/definitions/parameterGroupName"
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"custom": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "base case",
"input": {
"ParameterGroupName": "myclusterparametergroup",
"Tags": [
{
"Key": "testKey",
"Value": "testValue"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:parametergroup:myclusterparametergroup"
],
"title": "myclusterparametergroup",
"tags": {
"testKey": "testValue"
},
"custom": {
"createTimestamp": "2015-03-19T03:24:02.650Z",
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "additional property",
"input": {
"ParameterGroupName": "myclusterparametergroup",
"ParameterGroupFamily": "redshift-1.0",
"Tags": [
{
"Key": "testKey",
"Value": "testValue"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:parametergroup:myclusterparametergroup"
],
"title": "myclusterparametergroup",
"tags": {
"testKey": "testValue"
},
"custom": {
"createTimestamp": "2015-03-19T03:24:02.650Z",
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "invalid - missing ParameterGroupName",
"input": {
"ParameterGroupFamily": "redshift-1.0",
"Tags": [
{
"Key": "testKey",
"Value": "testValue"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:parametergroup:myclusterparametergroup"
],
"title": "myclusterparametergroup",
"tags": {
"testKey": "testValue"
},
"custom": {
"createTimestamp": "2015-03-19T03:24:02.650Z",
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "invalid - missing turbotData",
"input": {
"ParameterGroupName": "myclusterparametergroup",
"ParameterGroupFamily": "redshift-1.0",
"Tags": [
{
"Key": "testKey",
"Value": "testValue"
}
]
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterParameterGroup",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterSnapshotManual

{
"type": "object",
"properties": {
"SnapshotIdentifier": {
"$ref": "#/definitions/snapshotIdentifier",
"description": "The snapshot identifier that is provided in the request."
},
"ClusterIdentifier": {
"$ref": "#/definitions/clusterIdentifier",
"description": "The identifier of the cluster for which the snapshot was taken."
},
"SnapshotCreateTime": {
"$ref": "turbot#/definitions/isoTimestamp",
"description": "The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time."
},
"Status": {
"$ref": "#/definitions/snapshotStatus",
"description": "The snapshot status. The value of the status depends on the API operation used: CreateClusterSnapshot and CopyClusterSnapshot returns status as \"creating\". DescribeClusterSnapshots returns status as \"creating\", \"available\", \"final snapshot\", or \"failed\". DeleteClusterSnapshot returns status as \"deleted\"."
},
"Port": {
"$ref": "#/definitions/port",
"description": "The port that the cluster is listening on."
},
"AvailabilityZone": {
"type": "string",
"description": "The Availability Zone in which the cluster was created."
},
"ClusterCreateTime": {
"$ref": "turbot#/definitions/isoTimestamp",
"description": "The time (UTC) when the cluster was originally created."
},
"MasterUsername": {
"type": "string",
"description": "The master user name for the cluster."
},
"ClusterVersion": {
"type": "string",
"description": "The version ID of the Amazon Redshift engine that is running on the cluster."
},
"SnapshotType": {
"$ref": "#/definitions/snapshotType",
"description": "The snapshot type. Snapshots created using CreateClusterSnapshot and CopyClusterSnapshot are of type \"manual\". "
},
"NodeType": {
"type": "string",
"description": "The node type of the nodes in the cluster."
},
"NumberOfNodes": {
"type": "integer",
"description": "The number of nodes in the cluster."
},
"DBName": {
"type": "string",
"description": "The name of the database that was created when the cluster was created."
},
"VpcId": {
"type": "string",
"description": "The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output."
},
"Encrypted": {
"type": "boolean",
"description": "If true, the data in the snapshot is encrypted at rest."
},
"KmsKeyId": {
"type": "string",
"description": "The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken."
},
"EncryptedWithHSM": {
"type": "boolean",
"description": "A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. true indicates that the data is encrypted using HSM keys."
},
"AccountsWithRestoreAccess": {
"type": "array",
"description": "A list of the AWS customer accounts authorized to restore the snapshot. Returns null if no accounts are authorized. Visible only to the snapshot owner. "
},
"OwnerAccount": {
"type": "string",
"description": "For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot."
},
"TotalBackupSizeInMegaBytes": {
"type": "number",
"description": "The size of the complete set of backup data that would be used to restore the cluster."
},
"ActualIncrementalBackupSizeInMegaBytes": {
"type": "number",
"description": "The size of the incremental backup."
},
"BackupProgressInMegaBytes": {
"type": "number",
"description": "The number of megabytes that have been transferred to the snapshot backup."
},
"CurrentBackupRateInMegaBytesPerSecond": {
"type": "number",
"description": "The number of megabytes per second being transferred to the snapshot backup. Returns 0 for a completed backup. "
},
"EstimatedSecondsToCompletion": {
"type": "integer",
"description": "The estimate of the time remaining before the snapshot backup will complete. Returns 0 for a completed backup. "
},
"ElapsedTimeInSeconds": {
"type": "integer",
"description": "The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish."
},
"SourceRegion": {
"type": "string",
"description": "The source region from which the snapshot was copied."
},
"RestorableNodeTypes": {
"type": "array",
"description": "The list of node types that this cluster snapshot is able to restore into."
},
"EnhancedVpcRouting": {
"type": "boolean",
"description": "An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html\">Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide.If this option is true, enhanced VPC routing is enabled. Default: false"
},
"MaintenanceTrackName": {
"type": "string",
"description": "The name of the maintenance track for the snapshot."
},
"ManualSnapshotRetentionPeriod": {
"type": "integer",
"description": "The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely. The value must be either -1 or an integer between 1 and 3,653."
},
"ManualSnapshotRemainingDays": {
"type": "integer",
"description": "The number of days until a manual snapshot will pass its retention period."
},
"SnapshotRetentionStartTime": {
"$ref": "turbot#/definitions/isoTimestamp",
"description": "A timestamp representing the start of the retention period for the snapshot."
},
"Tags": {
"$ref": "aws#/definitions/tagList",
"description": "The list of tags for the cluster snapshot."
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/clusterSnapshotManualAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/snapshotIdentifier"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"test": [
{
"description": "Valid - All properties",
"input": {
"SnapshotIdentifier": "test",
"Tags": [
{
"Key": "foo",
"Value": "bar"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:snapshot:mysnapshot"
],
"tags": {
"foo": "bar"
},
"title": "test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "Invalid - Missing SnapshotIdentifier",
"input": {
"Tags": [
{
"Key": "foo",
"Value": "bar"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:snapshot:mysnapshot"
],
"tags": {
"foo": "bar"
},
"title": "test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
},
"expected": false
},
{
"description": "Invalid - Missing turbot data",
"input": {
"SnapshotIdentifier": "test",
"Tags": [
{
"Key": "foo",
"Value": "bar"
}
]
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterSnapshotManual",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterSnapshotManualAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:redshift:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:snapshot:(((?!.*--)[a-zA-Z][a-zA-Z0-9-]{1,253})[a-zA-Z0-9])/(((?!.*--)[a-zA-Z][a-zA-Z0-9-]{1,253})[a-zA-Z0-9])$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:redshift:us-east-1:123456789012:snapshot:cluster1/myclustersnapshot"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:redshift:us-east-1:123456789012:snapshots:mysnapshot",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:redshift:useast1:123456789012:snapshot:mysnapshot",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:redshift:us-east-1:12389012:snapshot:mysnapshot",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterSnapshotManualAka",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterStatus

{
"type": "string",
"enum": [
"available",
"available, prep-for-resize",
"available, resize-cleanup",
"cancelling-resize",
"creating",
"deleting",
"final-snapshot",
"hardware-failure",
"incompatible-hsm",
"incompatible-network",
"incompatible-parameters",
"incompatible-restore",
"modifying",
"rebooting",
"renaming",
"resizing",
"rotating-keys",
"storage-full",
"updating-hsm"
],
"tests": [
{
"input": "available"
},
{
"input": "creating"
},
{
"description": "invalid - not listed in options",
"input": "reactive",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - status in upper case",
"input": "ACTIVE",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterStatus",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterSubnetGroup

{
"type": "object",
"properties": {
"ClusterSubnetGroupName": {
"$ref": "#/definitions/clusterSubnetGroupName"
},
"Tags": {
"$ref": "aws#/definitions/tagList"
},
"SubnetGroupStatus": {
"$ref": "#/definitions/subnetGroupStatus"
},
"Description": {
"type": "string"
},
"VpcId": {
"type": "string"
},
"Subnets": {
"type": "array"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/clusterSubnetGroupAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/clusterSubnetGroupName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "all details provided",
"input": {
"ClusterSubnetGroupName": "test",
"Tags": [
{
"Key": "jhal",
"Value": "muri"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:subnetgroup:test"
],
"tags": {
"foo": "bar"
},
"title": "test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "invalid - missing ClusterSubnetGroupName",
"input": {
"Tags": [
{
"Key": "jhal",
"Value": "muri"
}
],
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012:subnetgroup:mycluster"
],
"tags": {
"foo": "bar"
},
"title": "test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterSubnetGroup",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterSubnetGroupAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:redshift:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:subnetgroup:[a-zA-Z0-9-]{1,255}",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws-us-gov:redshift:us-east-1:123456789012:subnetgroup:test-100"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:redshift:us-east-1:123456789012:subnetgroups:mycluster",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:redshift:use-east-12:123456789012:subnetgroup:mycluster",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:redshift:us-east-1:1234567890123:subnetgroup:test-100",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterSubnetGroupAka",
"modUri": "tmod:@turbot/aws-redshift"
}
}

clusterSubnetGroupName

{
"type": "string",
"pattern": "^[a-zA-Z0-9-]{1,255}",
"tests": [
{
"input": "test"
},
{
"input": "test-100"
},
{
"description": "invalid - cannot contain any special character",
"input": "$%^&test",
"expected": false
},
{
"description": "invalid - should not be array type",
"input": [
"test"
],
"expected": false
},
{
"description": "invalid - empty string passed",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/clusterSubnetGroupName",
"modUri": "tmod:@turbot/aws-redshift"
}
}

parameterGroupAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:redshift:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:parametergroup:(((?!.*--)[a-zA-Z][a-zA-Z0-9-]{1,253})[a-zA-Z0-9])$",
"tests": [
{
"input": "arn:aws-us-gov:redshift:us-east-1:746839647364:parametergroup:parameter-group-name"
},
{
"input": "arn:aws:redshift:us-east-1:746839647364:parametergroup:parameter-group-namefdjkls"
},
{
"description": "invalid - account id",
"input": "arn:aws:redshift:us-east-1:7468396473644379723:parametergroup:parameter-group-name",
"expected": false
},
{
"description": "invalid - region",
"input": "arn:aws:redshift:us-east-1fdsjhfhioww:746839647364:parametergroup:parameter-group-name",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/parameterGroupAka",
"modUri": "tmod:@turbot/aws-redshift"
}
}

parameterGroupName

{
"type": "string",
"pattern": "^(((?!.*--)[a-zA-Z][a-zA-Z0-9-]{1,253})[a-zA-Z0-9])$",
"tests": [
{
"input": "myclusterparametergroup"
},
{
"description": "invalid - can not start with numbers",
"input": "100pameter-group",
"expected": false
},
{
"description": "invalid - can not end with a hyphen",
"input": "parameter-group-",
"expected": false
},
{
"description": "invalid - can not contain two consecutive hyphens",
"input": "parameter--group",
"expected": false
},
{
"description": "invalid - too long",
"input": "aa12345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/parameterGroupName",
"modUri": "tmod:@turbot/aws-redshift"
}
}

port

{
"type": "integer",
"tests": [
{
"input": 5302
},
{
"input": 22
},
{
"description": "Invalid - port number",
"input": "reactive",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/port",
"modUri": "tmod:@turbot/aws-redshift"
}
}

redshift

{
"allOf": [
{
"$ref": "turbot#/definitions/service"
},
{
"type": "object",
"properties": {
"name": {
"const": "Redshift"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/redshiftAka"
}
},
"title": {
"const": "Redshift"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "redshift",
"input": {
"name": "Redshift",
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012"
],
"title": "Redshift",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "invalid - aws prefix provided",
"input": {
"name": "AWS Redshift",
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012"
],
"title": "Redshift",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
},
"expected": false
},
{
"description": "invalid - name missing",
"input": {
"turbot": {
"akas": [
"arn:aws:redshift:us-east-1:123456789012"
],
"title": "Redshift",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
},
"expected": false
}
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/redshift",
"modUri": "tmod:@turbot/aws-redshift"
}
}

redshiftAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:redshift:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}$",
"tests": [
{
"description": "base",
"input": "arn:aws:redshift:us-east-1:123123123123"
},
{
"description": "invalid service name",
"input": "arn:aws:redshifthaiaoiwq:us-east-1:123123123123",
"expected": false
},
{
"description": "invalid region name",
"input": "arn:aws:redshift:us-eastdk-74381:123382743123123123",
"expected": false
},
{
"description": "invalid provider name",
"input": "arn:gcp:redshift:us-eastdk-74381:123382743123123123",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/redshiftAka",
"modUri": "tmod:@turbot/aws-redshift"
}
}

snapshotIdentifier

{
"type": "string",
"pattern": "^(((?!.*--)[a-zA-Z][a-zA-Z0-9-]{1,253})[a-zA-Z0-9])$",
"tests": [
{
"input": "my-snapshot"
},
{
"input": "tur-bot-snapshot"
},
{
"description": "Invalid - cannot start with number",
"input": "123mysnapshot",
"expected": false
},
{
"description": "Invalid - cannot start with hyphen",
"input": "-mysnapshot",
"expected": false
},
{
"description": "Invalid - cannot end with hyphen",
"input": "mysnapshot-",
"expected": false
},
{
"description": "Invalid - cannot contain consecutive hyphens",
"input": "my--snapshot",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/snapshotIdentifier",
"modUri": "tmod:@turbot/aws-redshift"
}
}

snapshotStatus

{
"type": "string",
"enum": [
"available",
"creating",
"final snapshot",
"failed",
"deleted"
],
"tests": [
{
"input": "available"
},
{
"input": "creating"
},
{
"description": "invalid - not listed in options",
"input": "reactive",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - status in upper case",
"input": "ACTIVE",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/snapshotStatus",
"modUri": "tmod:@turbot/aws-redshift"
}
}

snapshotType

{
"type": "string",
"enum": [
"automated",
"manual"
],
"tests": [
{
"input": "automated"
},
{
"input": "manual"
},
{
"description": "invalid - not listed in options",
"input": "reactive",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - status in upper case",
"input": "MANUAL",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/snapshotType",
"modUri": "tmod:@turbot/aws-redshift"
}
}

subnetGroupStatus

{
"type": "string",
"enum": [
"Complete",
"Incomplete",
"Invalid"
],
"tests": [
{
"input": "Complete"
},
{
"description": "invalid - not listed in options",
"input": "RUNNABLE",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-redshift#/definitions/subnetGroupStatus",
"modUri": "tmod:@turbot/aws-redshift"
}
}