Definitions for @turbot/aws-elasticache

cacheCluster

{
"type": "object",
"properties": {
"CacheClusterId": {
"$ref": "#/definitions/cacheClusterId"
},
"CacheClusterName": {
"$ref": "#/definitions/cacheClusterId"
},
"Tags": {
"$ref": "aws#/definitions/tagList"
},
"CacheClusterStatus": {
"$ref": "#/definitions/cacheClusterStatus"
},
"Engine": {
"$ref": "#/definitions/clusterEngine"
},
"ConfigurationEndpoint": {
"type": "object"
},
"ClientDownloadLandingPage": {
"type": "string"
},
"CacheNodeType": {
"type": "string"
},
"EngineVersion": {
"type": "string"
},
"NumCacheNodes": {
"type": "integer"
},
"PreferredAvailabilityZone": {
"type": "string"
},
"CacheClusterCreateTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"PreferredMaintenanceWindow": {
"type": "string"
},
"PendingModifiedValues": {
"type": "object"
},
"NotificationConfiguration": {
"type": "object"
},
"CacheSecurityGroups": {
"type": "array"
},
"CacheParameterGroup": {
"type": "object"
},
"CacheSubnetGroupName": {
"type": "string"
},
"CacheNodes": {
"type": "array"
},
"SecurityGroups": {
"type": "array"
},
"SnapshotRetentionLimit": {
"type": "integer"
},
"AtRestEncryptionEnabled": {
"type": "boolean"
},
"TransitEncryptionEnabled": {
"type": "boolean"
},
"AuthTokenEnabled": {
"type": "boolean"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/cacheClusterAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/cacheClusterId"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"CacheClusterId": "test01-003",
"ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
"CacheNodeType": "cache.r5.large",
"Engine": "redis",
"EngineVersion": "5.0.4",
"CacheClusterStatus": "available",
"NumCacheNodes": 1,
"PreferredAvailabilityZone": "us-west-2c",
"CacheClusterCreateTime": "2019-05-21T11:39:21.831Z",
"PreferredMaintenanceWindow": "sat:07:30-sat:08:30",
"PendingModifiedValues": {},
"CacheSecurityGroups": [],
"CacheParameterGroup": {
"CacheParameterGroupName": "default.redis5.0",
"ParameterApplyStatus": "in-sync",
"CacheNodeIdsToReboot": []
},
"CacheSubnetGroupName": "default",
"CacheNodes": [],
"AutoMinorVersionUpgrade": true,
"SecurityGroups": [
{
"SecurityGroupId": "sg-0fcb1b1036fae7cb0",
"Status": "active"
}
],
"ReplicationGroupId": "test01",
"SnapshotRetentionLimit": 0,
"SnapshotWindow": "08:30-09:30",
"AuthTokenEnabled": false,
"TransitEncryptionEnabled": false,
"AtRestEncryptionEnabled": false,
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
],
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012:cluster:Test-01"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"descrition": "Invalid - Missing CacheClusterId",
"input": {
"CacheClusterName": "Cache-Cluster",
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
],
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012:cluster:Test-01"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "Cache-Cluster",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/cacheCluster",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

cacheClusterAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticache:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:cluster:[a-zA-Z](?:(?!.*--)[-a-zA-Z0-9]{0,18}[a-zA-Z0-9])$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:elasticache:us-east-1:123456789012:cluster:Test-01"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:elasticache:us-east-1:123456789012:cacheClusters/Test-01",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:elasticache:use-east-12:123456789012:cacheCluster/Test-01",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:elasticache:us-east-1:1234567890123:cacheCluster/Test-01",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/cacheClusterAka",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

cacheClusterId

{
"type": "string",
"pattern": "^[a-zA-Z](?:(?!.*--)[-a-zA-Z0-9]{0,18}[a-zA-Z0-9])$",
"tests": [
{
"input": "Test-01"
},
{
"input": "Cache-Cluster"
},
{
"description": "invalid - should always start with alphabet",
"input": "61106d4-Test",
"expected": false
},
{
"description": "invalid - too long",
"input": "Cache-Cluster-Test012",
"expected": false
},
{
"description": "invalid - should always end with alphanumeric character",
"input": "Cache-Cluster-Test012_",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/cacheClusterId",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

cacheClusterStatus

{
"type": "string",
"enum": [
"available",
"creating",
"deleted",
"deleting",
"incompatible-network",
"modifying",
"rebooting cluster nodes",
"restore-failed",
"snapshotting"
],
"tests": [
{
"input": "deleting"
},
{
"input": "creating"
},
{
"description": "invalid - not listed in options",
"input": "Reactive",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/cacheClusterStatus",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

cacheParameterGroup

{
"type": "object",
"properties": {
"CacheParameterGroupName": {
"$ref": "#/definitions/cacheParameterGroupName"
},
"CacheParameterGroupFamily": {
"$ref": "#/definitions/cacheParameterGroupFamily"
},
"Description": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/cacheParameterGroupAka"
}
},
"title": {
"$ref": "#/definitions/cacheParameterGroupName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"CacheParameterGroupName": "test",
"CacheParameterGroupFamily": "memcached1.4",
"Description": "testing this field",
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012:pg/test"
],
"title": "test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1",
"partition": "aws"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/cacheParameterGroup",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

cacheParameterGroupAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticache:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:pg/[a-zA-Z0-9-]*[^-]$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:elasticache:us-east-1:123456789012:pg/test-01"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:elasticache:us-east-1:1234567892:pg/test",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/cacheParameterGroupAka",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

cacheParameterGroupFamily

{
"type": "string",
"enum": [
"memcached1.4",
"memcached1.5",
"redis2.6",
"redis2.8",
"redis3.2",
"redis4.0",
"redis5.0"
],
"tests": [
{
"input": "redis2.6"
},
{
"input": "memcached1.4"
},
{
"description": "invalid - not listed in options",
"input": "redis_2.6",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/cacheParameterGroupFamily",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

cacheParameterGroupName

{
"type": "string",
"pattern": "^[a-zA-Z0-9-.]*[^-]$",
"tests": [
{
"input": "test"
},
{
"input": "param-group"
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/cacheParameterGroupName",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

clusterEngine

{
"type": "string",
"enum": [
"memcached",
"redis"
],
"tests": [
{
"input": "redis"
},
{
"description": "invalid engine",
"input": "Redis",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/clusterEngine",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

elastiCache

{
"allOf": [
{
"$ref": "turbot#/definitions/service"
},
{
"type": "object",
"properties": {
"name": {
"const": "ElastiCache"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/elasticacheAka"
}
},
"title": {
"const": "ElastiCache"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "All valid properties",
"input": {
"name": "ElastiCache",
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012"
],
"title": "ElastiCache",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1",
"partition": "aws"
}
}
}
}
},
{
"description": "invalid - name is missing",
"input": {
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012"
],
"title": "ElastiCache",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1",
"partition": "aws"
}
}
}
},
"expected": false
}
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/elastiCache",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

elasticacheAka

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

elastiCacheSnapshotStatus

{
"type": "string",
"enum": [
"creating",
"available",
"restoring",
"copying",
"deleting"
],
"tests": [
{
"input": "creating"
},
{
"input": "copying"
},
{
"description": "invalid - not listed in options",
"input": "Reactive",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/elastiCacheSnapshotStatus",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

replicationGroup

{
"type": "object",
"properties": {
"ReplicationGroupId": {
"$ref": "#/definitions/cacheClusterId"
},
"Status": {
"$ref": "#/definitions/replicationGroupStatus"
},
"Description": {
"type": "string"
},
"PendingModifiedValues": {
"type": "object"
},
"MemberClusters": {
"type": "array"
},
"NodeGroups": {
"type": "array"
},
"SnapshottingClusterId": {
"type": "string"
},
"AutomaticFailover": {
"type": "string"
},
"ConfigurationEndpoint": {
"type": "object"
},
"ClusterEnabled": {
"type": "boolean"
},
"CacheNodeType": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/replicationGroupAka"
}
},
"title": {
"$ref": "#/definitions/cacheClusterId"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"ReplicationGroupId": "test-sana-30",
"Status": "available",
"Description": "temp",
"PendingModifiedValues": {},
"MemberClusters": [
"test-sana-30-001",
"test-sana-30-002"
],
"NodeGroups": [
{
"NodeGroupId": "0001",
"Status": "available",
"PrimaryEndpoint": {
"Address": "test-sana-30.ji9aru.ng.0001.use1.cache.amazonaws.com",
"Port": 6379
},
"ReaderEndpoint": {
"Address": "test-sana-30-ro.ji9aru.ng.0001.use1.cache.amazonaws.com",
"Port": 6379
},
"NodeGroupMembers": [
{
"CacheClusterId": "test-sana-30-001",
"CacheNodeId": "0001",
"ReadEndpoint": {
"Address": "test-sana-30-001.ji9aru.0001.use1.cache.amazonaws.com",
"Port": 6379
},
"PreferredAvailabilityZone": "us-east-1a",
"CurrentRole": "primary"
},
{
"CacheClusterId": "test-sana-30-002",
"CacheNodeId": "0001",
"ReadEndpoint": {
"Address": "test-sana-30-002.ji9aru.0001.use1.cache.amazonaws.com",
"Port": 6379
},
"PreferredAvailabilityZone": "us-east-1a",
"CurrentRole": "replica"
}
]
}
],
"SnapshottingClusterId": "test-sana-30-002",
"AutomaticFailover": "enabled",
"ClusterEnabled": false,
"CacheNodeType": "cache.r5.large",
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012:rg/test-sana-30"
],
"title": "test-sana-30",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "Invalid - Missing replication group id",
"input": {
"Status": "available",
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012:rg/test-sana-30"
],
"title": "test-sana-30",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "Invalid - Missing turbot data",
"input": {
"ReplicationGroupId": "test-sana-30",
"Status": "available"
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/replicationGroup",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

replicationGroupAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticache:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:rg/[a-zA-Z](?:(?!.*--)[-a-zA-Z0-9]{0,18}[a-zA-Z0-9])$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:elasticache:us-east-1:123456789012:rg/test-01"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:elasticache:us-east-1:123456789012:rG/test-01",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:elasticache:use-east-1:123456789012:rg/test-01",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:elasticache:us-east-1:1234567890123:rg/test-01",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/replicationGroupAka",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

replicationGroupStatus

{
"type": "string",
"enum": [
"creating",
"available",
"modifying",
"create-failed",
"snapshotting",
"deleting"
],
"tests": [
{
"input": "creating"
},
{
"input": "available"
},
{
"description": "invalid - not listed in options",
"input": "pending",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/replicationGroupStatus",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

snapshot

{
"type": "object",
"properties": {
"CacheClusterId": {
"$ref": "#/definitions/cacheClusterId"
},
"SnapshotName": {
"$ref": "#/definitions/snapshotName"
},
"ReplicationGroupId": {
"type": "string"
},
"ReplicationGroupDescription": {
"type": "string"
},
"SnapshotSource": {
"type": "string"
},
"CacheNodeType": {
"type": "string"
},
"NodeSnapshots": {
"type": "array"
},
"NumCacheNodes": {
"type": "integer"
},
"SnapshotWindow": {
"type": "string"
},
"SnapshotRetentionLimit": {
"type": "integer"
},
"Tags": {
"$ref": "aws#/definitions/tagList"
},
"SnapshotStatus": {
"$ref": "#/definitions/elastiCacheSnapshotStatus"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/snapshotAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/snapshotName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"SnapshotName": "cache-snapshot",
"CacheClusterId": "Cache-Cluster",
"SnapshotSource": "manual",
"NumCacheNodes": 1,
"SnapshotRetentionLimit": 1,
"SnapshotWindow": "00:00-01:00",
"NodeSnapshots": [
{
"CacheNodeId": "0001",
"CacheSize": "3 MB",
"CacheNodeCreateTime": "2019-01-22T08:26:20.384Z",
"SnapshotCreateTime": "2019-01-22T08:54:50.000Z"
}
],
"Tags": [
{
"Key": "Env",
"Value": "Test"
}
],
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012:snapshot:test-01"
],
"tags": {
"Env": "Test"
},
"title": "cache-snapshot",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "Invalid - Missing snapshot name",
"input": {
"CacheClusterId": "Cache-Cluster",
"Tags": [
{
"Key": "Env",
"Value": "Test"
}
],
"turbot": {
"akas": [
"arn:aws:elasticache:us-east-1:123456789012:snapshot:test-01"
],
"tags": {
"Env": "Test"
},
"title": "cache-snapshot",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "Invalid - Missing turbot data",
"input": {
"SnapshotName": "cache-snapshot",
"CacheClusterId": "Cache-Cluster",
"Tags": [
{
"Key": "Env",
"Value": "Test"
}
]
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/snapshot",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

snapshotAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticache:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:snapshot:(?!-)(?!\\d)(?!.*--)[a-z0-9-]{1,255}(?<!-)$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:elasticache:us-east-1:123456789012:snapshot:test-01"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:elasticache:us-east-1:123456789012:snapshots:test-01",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:elasticache:use-east-1:123456789012:snapshot:test-01",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:elasticache:us-east-1:1234567890123:snapshot:test-01",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/snapshotAka",
"modUri": "tmod:@turbot/aws-elasticache"
}
}

snapshotName

{
"type": "string",
"pattern": "^(?!-)(?!\\d)(?!.*--)[a-z0-9-]{1,255}(?<!-)$",
"tests": [
{
"input": "test-01"
},
{
"input": "cache-snapshot"
},
{
"description": "invalid - must not contain two consecutive hyphens.",
"input": "cache--snapshot",
"expected": false
},
{
"description": "invalid - should always start with alphabet",
"input": "61106d4-Test",
"expected": false
},
{
"description": "invalid - too short",
"input": "",
"expected": false
},
{
"description": "invalid - too long",
"input": "qwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwertyqwerty",
"expected": false
},
{
"description": "invalid - must contain only ascii letters, digits, and hyphens(-)",
"input": "cache_snapshot",
"expected": false
},
{
"description": "invalid - can end with alphanumeric character only",
"input": "cache-snapshot-",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-elasticache#/definitions/snapshotName",
"modUri": "tmod:@turbot/aws-elasticache"
}
}