Definitions for @turbot/aws-route53

callerReference

{
"anyOf": [
{
"$ref": "turbot#/definitions/isoTimestamp"
},
{
"type": "string"
}
],
"type": "string",
"minLength": 1,
"maxLength": 128,
"tests": [
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "2017-03-15T01:36:41.958Z"
},
{
"input": "Seattle data center"
},
{
"input": "2017-03-15T01:36:41.958Z"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "min length",
"input": "1"
},
{
"description": "max length",
"input": "12345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012"
},
{
"description": "invalid - too long",
"input": "123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/callerReference",
"modUri": "tmod:@turbot/aws-route53"
}
}

childHealthChecks

{
"type": "array",
"maxItems": 256,
"items": {
"type": "string",
"maxLength": 64
},
"tests": [
{
"input": [
"ns-2048.awsdns-64.com",
"ns-2049.awsdns-65.net"
]
},
{
"description": "max length of string in array",
"input": [
"1234567890123456789012345678901212345678901234567890123456789012"
]
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
},
{
"description": "invalid - too long string in array",
"input": [
"1234567890123456789012345678901212345678901234567890123456789012345"
],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/childHealthChecks",
"modUri": "tmod:@turbot/aws-route53"
}
}

cloudWatchAlarmConfiguration

{
"type": "object",
"properties": {
"ComparisonOperator": {
"$ref": "#/definitions/comparisonOperator"
},
"Dimensions": {
"type": "array",
"maxItems": 10,
"items": {
"$ref": "#/definitions/dimension"
}
},
"EvaluationPeriods": {
"$ref": "#/definitions/evaluationPeriods"
},
"MetricName": {
"$ref": "#/definitions/dimensionName"
},
"Namespace": {
"$ref": "#/definitions/dimensionName"
},
"Period": {
"$ref": "#/definitions/period"
},
"Statistic": {
"$ref": "#/definitions/statistic"
},
"Threshold": {
"$ref": "#/definitions/threshold"
}
},
"required": [
"Period",
"Threshold",
"Statistic",
"Namespace",
"MetricName",
"EvaluationPeriods",
"ComparisonOperator"
],
"tests": [
{
"description": "base case",
"input": {
"ComparisonOperator": "GreaterThanOrEqualToThreshold",
"MetricName": "CPUUtilization",
"Period": 300,
"Namespace": "AWS/EC2",
"Statistic": "Average",
"Threshold": 70,
"EvaluationPeriods": 2,
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-0c986c72"
}
]
}
},
{
"description": "invalid - more than maxItems in the array",
"input": {
"ComparisonOperator": "GreaterThanOrEqualToThreshold",
"MetricName": "CPUUtilization",
"Period": 300,
"Namespace": "AWS/EC2",
"Statistic": "Average",
"Threshold": 70,
"EvaluationPeriods": 2,
"Dimensions": [
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
},
{
"Name": "i",
"Value": "i"
}
]
},
"expected": false
},
{
"description": "invalid - missing required Namespace property",
"input": {
"ComparisonOperator": "GreaterThanOrEqualToThreshold",
"MetricName": "CPUUtilization",
"Period": 300,
"Statistic": "Average",
"Threshold": 70,
"EvaluationPeriods": 2
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/cloudWatchAlarmConfiguration",
"modUri": "tmod:@turbot/aws-route53"
}
}

cloudWatchLogsLogGroupArn

{
"type": "string",
"tests": [
{
"input": "arn:aws:logs:us-east-1:111111111111:log-group:example.com:*"
},
{
"input": "arn:aws:logs:us-west-1:111111111111:log-group:example.com:*"
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/cloudWatchLogsLogGroupArn",
"modUri": "tmod:@turbot/aws-route53"
}
}

cmdbDiscoveryFrequency

{
"type": "string",
"enum": [
"Daily",
"Weekly",
"Monthly",
"Yearly"
],
"example": [
"Weekly"
],
"default": "Monthly",
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/cmdbDiscoveryFrequency",
"modUri": "tmod:@turbot/aws-route53"
}
}

comment

{
"type": "string",
"maxLength": 256,
"tests": [
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "abcde"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "max length",
"input": "1234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012"
},
{
"description": "null value",
"input": null
},
{
"description": "invalid - too long",
"input": "12345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890123",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/comment",
"modUri": "tmod:@turbot/aws-route53"
}
}

comparisonOperator

{
"type": "string",
"enum": [
"GreaterThanOrEqualToThreshold",
"GreaterThanThreshold",
"LessThanThreshold",
"LessThanOrEqualToThreshold"
],
"tests": [
{
"input": "LessThanThreshold"
},
{
"input": "LessThanOrEqualToThreshold"
},
{
"input": "GreaterThanOrEqualToThreshold"
},
{
"description": "invalid - case sensitive",
"input": "greaterthanorequaltothreshold",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/comparisonOperator",
"modUri": "tmod:@turbot/aws-route53"
}
}

config

{
"type": "object",
"properties": {
"Comment": {
"$ref": "#/definitions/comment"
},
"PrivateZone": {
"$ref": "#/definitions/route53Enabled"
}
},
"required": [
"PrivateZone"
],
"tests": [
{
"description": "base case",
"input": {
"Comment": "hello",
"PrivateZone": true
}
},
{
"description": "invalid - required property PrivateZone not provided",
"input": {
"Comment": "Hello"
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/config",
"modUri": "tmod:@turbot/aws-route53"
}
}

continentCode

{
"type": "string",
"enum": [
"AF",
"AN",
"AS",
"EU",
"OC",
"NA",
"SA"
],
"tests": [
{
"input": "AS"
},
{
"input": "SA"
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/continentCode",
"modUri": "tmod:@turbot/aws-route53"
}
}

countryCode

{
"type": "string",
"minLength": 1,
"maxLength": 2,
"tests": [
{
"input": "A"
},
{
"input": 11
},
{
"description": "min length",
"input": "Y"
},
{
"description": "max length",
"input": "YZ"
},
{
"description": "invalid - too long",
"input": "ABC",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/countryCode",
"modUri": "tmod:@turbot/aws-route53"
}
}

delegationSet

{
"type": "object",
"properties": {
"CallerReference": {
"$ref": "#/definitions/callerReference"
},
"Id": {
"$ref": "#/definitions/delegationSetId"
},
"NameServers": {
"$ref": "#/definitions/nameServers"
}
},
"required": [
"NameServers",
"Id"
],
"tests": [
{
"description": "base case",
"input": {
"CallerReference": "2017-03-15T01:36:41.958Z",
"Id": "/delegationset/N1PA6795SAMPLE",
"NameServers": [
"ns-2042.awsdns-64.com",
"ns-2043.awsdns-65.net",
"ns-2044.awsdns-66.org",
"ns-2045.awsdns-67.co.uk"
]
}
},
{
"description": "additional property",
"input": {
"CallerReference": "2017-03-15T01:36:41.958Z",
"Id": "/delegationset/N1PA6795SAMPLE",
"NameServers": [
"ns-2042.awsdns-64.com",
"ns-2043.awsdns-65.net",
"ns-2044.awsdns-66.org",
"ns-2045.awsdns-67.co.uk"
],
"NextMarker": "N1PA6797SAMPLE"
}
},
{
"description": "invalid - missing required Id property",
"input": {
"CallerReference": "2017-03-15T01:36:41.958Z"
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/delegationSet",
"modUri": "tmod:@turbot/aws-route53"
}
}

delegationSetId

{
"type": "string",
"maxLength": 32,
"tests": [
{
"input": "hello@hi.com"
},
{
"input": "foo@123"
},
{
"input": "00123"
},
{
"input": "/delegationset/N1PA6795SAMPLE"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "empty string",
"input": ""
},
{
"description": "null value",
"input": null
},
{
"description": "max length",
"input": "12345678901234567890123456789012"
},
{
"description": "invalid - too long",
"input": "1234567890123456789012345678901234567890123456789012345678",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/delegationSetId",
"modUri": "tmod:@turbot/aws-route53"
}
}

dimension

{
"type": "object",
"properties": {
"Name": {
"$ref": "#/definitions/dimensionName"
},
"Value": {
"$ref": "#/definitions/dimensionName"
}
},
"required": [
"Name",
"Value"
],
"tests": [
{
"description": "base case",
"input": {
"Name": "name of a dimension for the metric",
"Value": "value of a dimension for the metric"
}
},
{
"description": "additional property",
"input": {
"Aws": {
"AccountId": 123456789012,
"RegionName": "us-east-1"
},
"Name": "name of a dimension for the metric",
"Value": "value of a dimension for the metric"
}
},
{
"description": "invalid - missing required Name property",
"input": {
"Value": "value of a dimension for the metric"
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/dimension",
"modUri": "tmod:@turbot/aws-route53"
}
}

dimensionName

{
"type": "string",
"minLength": 1,
"maxLength": 255,
"tests": [
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "CPUUtilization"
},
{
"input": "AWS/EC2"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "min length",
"input": "1"
},
{
"description": "max length",
"input": "123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901"
},
{
"description": "invalid - too long",
"input": "1234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/dimensionName",
"modUri": "tmod:@turbot/aws-route53"
}
}

dnsName

{
"type": "string",
"maxLength": 1024,
"tests": [
{
"input": "hello@hi.com"
},
{
"input": "foo123"
},
{
"input": "images.example.com"
},
{
"input": "example-com-234567890.sa-east-1.elb.amazonaws.com"
},
{
"description": "cloudfront example",
"input": "d123rk29d0stfj.cloudfront.net"
},
{
"description": "Elastic Beanstalk example",
"input": "my-env.elasticbeanstalk.com"
},
{
"description": "ELB load balancer example",
"input": "example-com-987654321.us-west-2.elb.amazonaws.com"
},
{
"description": "Amazon S3 bucket example",
"input": "s3-website-us-east-2.amazonaws.com"
},
{
"description": "empty string",
"input": ""
},
{
"description": "null value",
"input": null
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/dnsName",
"modUri": "tmod:@turbot/aws-route53"
}
}

document

{
"type": "string",
"maxLength": 102400,
"tests": [
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "abcde"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "null value",
"input": null
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/document",
"modUri": "tmod:@turbot/aws-route53"
}
}

evaluationPeriods

{
"type": "integer",
"minimum": 1,
"tests": [
{
"input": 83
},
{
"description": "min value",
"input": 1
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - string type provided",
"input": "Hello",
"expected": false
},
{
"description": "invalid - less than min value",
"input": -3,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/evaluationPeriods",
"modUri": "tmod:@turbot/aws-route53"
}
}

failover

{
"type": "string",
"enum": [
"PRIMARY",
"SECONDARY"
],
"tests": [
{
"input": "PRIMARY"
},
{
"input": "SECONDARY"
},
{
"description": "invalid - case sensitive",
"input": "primary",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/failover",
"modUri": "tmod:@turbot/aws-route53"
}
}

geoLocation

{
"type": "object",
"properties": {
"ContinentCode": {
"$ref": "#/definitions/continentCode"
},
"CountryCode": {
"$ref": "#/definitions/countryCode"
},
"SubdivisionCode": {
"$ref": "#/definitions/subdivisionCode"
}
},
"required": [
"CountryCode"
],
"tests": [
{
"description": "base case",
"input": {
"ContinentCode": "SA",
"CountryCode": "FR",
"SubdivisionCode": "OR"
}
},
{
"description": "additional property",
"input": {
"Aws": {
"AccountId": 123456789012,
"RegionName": "us-east-1"
},
"ContinentCode": "NA",
"CountryCode": "US",
"SubdivisionCode": "OR",
"SubdivisionName": "Oregon"
}
},
{
"description": "invalid - missing required CountryCode",
"input": {
"Aws": {
"AccountId": 123456789012,
"RegionName": "us-east-1"
},
"ContinentCode": "NA",
"SubdivisionCode": "OR",
"SubdivisionName": "Oregon"
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/geoLocation",
"modUri": "tmod:@turbot/aws-route53"
}
}

healthCheckCallerReference

{
"type": "string",
"minLength": 1,
"maxLength": 64,
"tests": [
{
"input": "018927304987"
},
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "abcde"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"input": "example.com 192.0.2.17"
},
{
"description": "max length",
"input": "1234567890123456789012345678901212345678901234567890123456789012"
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - too long",
"input": "12345678901234567890123456789012123456789012345678901234567890123",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/healthCheckCallerReference",
"modUri": "tmod:@turbot/aws-route53"
}
}

hostedZone

{
"type": "object",
"properties": {
"CallerReference": {
"$ref": "#/definitions/callerReference"
},
"Config": {
"$ref": "#/definitions/config"
},
"Id": {
"$ref": "#/definitions/hostedZoneId"
},
"DelegationSet": {
"$ref": "#/definitions/delegationSet"
},
"LinkedService": {
"$ref": "#/definitions/linkedService"
},
"Name": {
"$ref": "#/definitions/dnsName"
},
"ResourceRecordSetCount": {
"type": "integer"
},
"VPCs": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/vpcs"
}
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/hostedZoneAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/dnsName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "base case",
"input": {
"Name": "example.com",
"Id": "/hostedzone/Z1D633PJN98FT9",
"title": "my-env.elasticbeanstalk.com",
"VPCs": [
{
"VPCRegion": "us-east-1",
"VPCId": "vpc-1a2b3c4d"
},
{
"VPCRegion": "us-east-1",
"VPCId": "vpc-1a2b3c4d"
}
],
"turbot": {
"akas": [
"arn:aws:route53:::hostedzone/Z1D633PJN98FT9"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "example.com",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "invalid - missing required Id Value",
"input": {
"Name": "example.com",
"title": "my-env.elasticbeanstalk.com",
"VPCs": [
{
"VPCRegion": "us-east-1",
"VPCId": "vpc-1a2b3c4d"
},
{
"VPCRegion": "us-east-1",
"VPCId": "vpc-1a2b3c4d"
}
],
"turbot": {
"akas": [
{
"arn:aws:route53::": null
}
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "example.com",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/hostedZone",
"modUri": "tmod:@turbot/aws-route53"
}
}

hostedZoneAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:route53:::hostedzone/[A-Za-z0-9]{1,32}?$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:route53:::hostedzone/Z148QEXAMPLE8V"
},
{
"description": "Invalid - mismatched pattern",
"input": "arn:aws:route83::domain/hello123",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/hostedZoneAka",
"modUri": "tmod:@turbot/aws-route53"
}
}

hostedZoneId

{
"type": "string",
"pattern": "^[A-Za-z0-9/]{1,32}$",
"maxLength": 32,
"tests": [
{
"description": "max length",
"input": "hostedzone/12345678901234567"
},
{
"description": "invalid - too long",
"input": "/hostedzone/1234567890123456789012345678901234567890123456789012345678",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/hostedZoneId",
"modUri": "tmod:@turbot/aws-route53"
}
}

linkedService

{
"type": "object",
"properties": {
"Description": {
"$ref": "#/definitions/linkedServiceDescription"
},
"ServicePrincipal": {
"$ref": "#/definitions/servicePrincipal"
}
},
"required": [
"ServicePrincipal"
],
"tests": [
{
"description": "base case",
"input": {
"ServicePrincipal": "Hello"
}
},
{
"description": "invalid - missing required serviceprincipal property",
"input": {
"Description": "hello"
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/linkedService",
"modUri": "tmod:@turbot/aws-route53"
}
}

linkedServiceDescription

{
"type": "string",
"maxLength": 256,
"tests": [
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "abcde"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "max length",
"input": "1234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012"
},
{
"description": "null value",
"input": null
},
{
"description": "invalid - too long",
"input": "12345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890123",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/linkedServiceDescription",
"modUri": "tmod:@turbot/aws-route53"
}
}

nameServers

{
"type": "array",
"minItem": 1,
"items": {
"type": "string",
"maxLength": 1024
},
"tests": [
{
"input": [
"ns-2048.awsdns-64.com",
"ns-2049.awsdns-65.net"
]
},
{
"description": "min Items",
"input": [
"hello"
]
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/nameServers",
"modUri": "tmod:@turbot/aws-route53"
}
}

period

{
"type": "integer",
"minimum": 60,
"tests": [
{
"input": 83
},
{
"description": "min value",
"input": 60
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - string type provided",
"input": "Hello",
"expected": false
},
{
"description": "invalid - less than min value",
"input": 15,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/period",
"modUri": "tmod:@turbot/aws-route53"
}
}

record

{
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Type": {
"$ref": "#/definitions/recordTypes"
},
"SetIdentifier": {
"type": "string"
},
"Weight": {
"type": "integer"
},
"Region": {
"type": "string"
},
"GeoLocation": {
"type": "object"
},
"Failover": {
"type": "string"
},
"MultiValueAnswer": {
"type": "boolean"
},
"TTL": {
"type": "integer"
},
"ResourceRecords": {
"type": "array"
},
"AliasTarget": {
"type": "object"
},
"HealthCheckId": {
"type": "string"
},
"TrafficPolicyInstanceId": {
"type": "string"
},
"CidrRoutingConfig": {
"$ref": "#/definitions/recordCidrRoutingConfig"
},
"IsTruncated": {
"type": "boolean"
},
"NextRecordName": {
"type": "string"
},
"NextRecordType": {
"type": "string"
},
"NextRecordIdentifier": {
"type": "string"
},
"MaxItems": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/recordAka"
}
},
"title": {
"type": "string"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"hostedZoneId": {
"$ref": "#/definitions/hostedZoneId"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "base case",
"input": {
"Name": "abc.example.com",
"Type": "SOA",
"TTL": 60,
"turbot": {
"akas": [
"arn:aws:route53::123456784040:hostedzone/Z2GB9553HG5X3O/record/SOA_abc.example.com"
],
"custom": {
"hostedZoneId": "/hostedzone/Z2GB9553HG5X3O",
"aws": {
"accountId": 123456784040,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "invalid - missing required Name value",
"input": {
"Type": "NS",
"TTL": 3600,
"turbot": {
"akas": [
"arn:aws:route53::123456784040:record/"
],
"custom": {
"hostedZoneId": "/hostedzone/Z2GB9553HG5X3O",
"aws": {
"accountId": 123456784040,
"regionName": "us-east-1"
}
}
}
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/record",
"modUri": "tmod:@turbot/aws-route53"
}
}

recordAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:route53:::hostedzone/[A-Za-z0-9]{1,32}/record/[A-Z]_[a-zA-Z0-9.*#@$&]{1,59}?$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:route53:::hostedzone/Z148QEXAMPLE8V/A_xyz.com"
},
{
"description": "Invalid - mismatched pattern",
"input": "arn:aws:route83::domain/hello123",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/recordAka",
"modUri": "tmod:@turbot/aws-route53"
}
}

recordCidrRoutingConfig

{
"type": "object",
"properties": {
"CollectionId": {
"type": "string"
},
"LocationName": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/recordCidrRoutingConfig",
"modUri": "tmod:@turbot/aws-route53"
}
}

recordTypes

{
"type": "string",
"enum": [
"SOA",
"A",
"TXT",
"NS",
"CNAME",
"MX",
"NAPTR",
"PTR",
"SRV",
"SPF",
"AAAA",
"CAA",
"DS"
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/recordTypes",
"modUri": "tmod:@turbot/aws-route53"
}
}

requestInterval

{
"type": "integer",
"minimum": 10,
"maximum": 30,
"tests": [
{
"input": 10
},
{
"description": "min value",
"input": 10
},
{
"description": "max value",
"input": 30
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - string type provided",
"input": "Hello",
"expected": false
},
{
"description": "invalid - less than min value",
"input": -3,
"expected": false
},
{
"description": "invalid - greater than max value",
"input": 11111111111,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/requestInterval",
"modUri": "tmod:@turbot/aws-route53"
}
}

resourceRecord

{
"type": "object",
"properties": {
"Value": {
"$ref": "#/definitions/resourceRecordValue"
}
},
"required": [
"Value"
],
"tests": [
{
"description": "base case",
"input": {
"Value": "ns-2048.awsdns-64.net. hostmaster.awsdns.com. 1 7200 900 1209600 86400"
}
},
{
"description": "additional property",
"input": {
"Aws": {
"AccountId": 123456789012,
"RegionName": "us-east-1"
},
"Value": "ns-2048.awsdns-64.net. hostmaster.awsdns.com. 1 7200 900 1209600 86400"
}
},
{
"description": "invalid - missing required Value property",
"input": {
"Aws": {
"AccountId": 123456789012,
"RegionName": "us-east-1"
}
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/resourceRecord",
"modUri": "tmod:@turbot/aws-route53"
}
}

resourceRecordSetName

{
"type": "string",
"pattern": "^((\\*)|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|((\\*\\.)?([a-zA-Z0-9-]+\\.){0,5}[a-zA-Z0-9-][a-zA-Z0-9-]+\\.[a-zA-Z]{2,63}?))$",
"maxLength": 1024,
"tests": [
{
"input": "hello.exmaple.com"
},
{
"input": "*.facebook.com"
},
{
"input": "example.com"
},
{
"input": "123.turbot.com"
},
{
"input": "*.12345.com"
},
{
"input": "marketing.example.com"
},
{
"input": "*.turbot.com"
},
{
"description": "null value",
"input": null,
"expected": false
},
{
"description": "invalid - asterisk in middle",
"input": "prod*.example.com",
"expected": false
},
{
"description": "invalid - asterisk with a label",
"input": "*prod.example.com",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/resourceRecordSetName",
"modUri": "tmod:@turbot/aws-route53"
}
}

resourceRecordSetRegion

{
"type": "string",
"enum": [
"ap-northeast-1",
"ap-northeast-2",
"ap-northeast-3",
"ap-south-1",
"ap-southeast-1",
"ap-southeast-2",
"ca-central-1",
"cn-north-1",
"cn-northwest-1",
"eu-central-1",
"eu-west-1",
"eu-west-2",
"eu-west-3",
"sa-east-1",
"us-east-1",
"us-east-2",
"us-west-1",
"us-west-2"
],
"tests": [
{
"input": "ap-northeast-2"
},
{
"input": "sa-east-1"
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/resourceRecordSetRegion",
"modUri": "tmod:@turbot/aws-route53"
}
}

resourceRecordSetTtl

{
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"tests": [
{
"input": 83
},
{
"description": "min value",
"input": 0
},
{
"description": "max value",
"input": 2147483647
},
{
"description": "null value",
"input": null
},
{
"description": "invalid - string type provided",
"input": "Hello",
"expected": false
},
{
"description": "invalid - less than min value",
"input": -3,
"expected": false
},
{
"description": "invalid - greater than max value",
"input": 11111111111,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/resourceRecordSetTtl",
"modUri": "tmod:@turbot/aws-route53"
}
}

resourceRecordSetType

{
"type": "string",
"enum": [
"SOA",
"A",
"TXT",
"NS",
"CNAME",
"MX",
"NAPTR",
"PTR",
"SRV",
"SPF",
"AAAA",
"CAA"
],
"tests": [
{
"input": "CNAME"
},
{
"input": "A"
},
{
"input": "MX"
},
{
"description": "invalid - case sensitive",
"input": "cname",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/resourceRecordSetType",
"modUri": "tmod:@turbot/aws-route53"
}
}

resourceRecordSetWeight

{
"type": "integer",
"minimum": 0,
"maximum": 255,
"tests": [
{
"input": 83
},
{
"description": "min value",
"input": 0
},
{
"description": "max value",
"input": 255
},
{
"description": "null value",
"input": null
},
{
"description": "invalid - string type provided",
"input": "Hello",
"expected": false
},
{
"description": "invalid - less than min value",
"input": -3,
"expected": false
},
{
"description": "invalid - greater than max value",
"input": 256,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/resourceRecordSetWeight",
"modUri": "tmod:@turbot/aws-route53"
}
}

resourceRecordValue

{
"type": "string",
"maxLength": 4000,
"tests": [
{
"input": "192.0.2.44"
},
{
"input": "ns-2048.awsdns-64.net. hostmaster.awsdns.com. 1 7200 900 1209600 86400"
},
{
"description": "null value",
"input": null
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/resourceRecordValue",
"modUri": "tmod:@turbot/aws-route53"
}
}

route53

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

route53Aka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:route53::[0-9]{12}",
"tests": [
{
"description": "base",
"input": "arn:aws:route53::123123123123"
},
{
"description": "invalid aka",
"input": "arn:aws:route53111::123123123123",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/route53Aka",
"modUri": "tmod:@turbot/aws-route53"
}
}

route53Enabled

{
"type": "boolean",
"tests": [
{
"input": true
},
{
"input": false
},
{
"input": 0
},
{
"input": 1
},
{
"description": "null value",
"input": null
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
},
{
"description": "invalid - array type",
"input": [
true,
false
],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/route53Enabled",
"modUri": "tmod:@turbot/aws-route53"
}
}

servicePrincipal

{
"type": "string",
"maxLength": 128,
"tests": [
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "abcde"
},
{
"input": "2017-03-15T01:36:41.958Z"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "null value",
"input": null
},
{
"description": "max length",
"input": "12345678901234567890123456789012123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012"
},
{
"description": "invalid - too long",
"input": "123456789012345678901234567890121234567890123456789012345678901212345678901234567890123456789012123456789012345678901234567890121",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/servicePrincipal",
"modUri": "tmod:@turbot/aws-route53"
}
}

statistic

{
"type": "string",
"enum": [
"Average",
"Sum",
"SampleCount",
"Maximum",
"Minimum"
],
"tests": [
{
"input": "Average"
},
{
"input": "Sum"
},
{
"input": "Maximum"
},
{
"description": "invalid - case sensitive",
"input": "sum",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/statistic",
"modUri": "tmod:@turbot/aws-route53"
}
}

status

{
"type": "string",
"enum": [
"PENDING",
"INSYNC"
],
"tests": [
{
"input": "PENDING"
},
{
"input": "INSYNC"
},
{
"description": "invalid - case sensitive",
"input": "pending",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/status",
"modUri": "tmod:@turbot/aws-route53"
}
}

subdivisionCode

{
"type": "string",
"minLength": 1,
"maxLength": 3,
"tests": [
{
"input": "A"
},
{
"input": 11
},
{
"description": "min length",
"input": "Y"
},
{
"description": "max length",
"input": "XYZ"
},
{
"description": "invalid - too long",
"input": "ABCD",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/subdivisionCode",
"modUri": "tmod:@turbot/aws-route53"
}
}

threshold

{
"type": "number",
"tests": [
{
"input": 83
},
{
"input": 60.223
},
{
"input": 15
},
{
"description": "null value",
"input": null
},
{
"description": "invalid - string type provided",
"input": "Hello",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/threshold",
"modUri": "tmod:@turbot/aws-route53"
}
}

trafficPolicyInstanceId

{
"type": "string",
"minLength": 1,
"maxLength": 36,
"tests": [
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "abcde"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "min length",
"input": "1"
},
{
"description": "max length",
"input": "123456789012345678901234567890123456"
},
{
"description": "invalid - too long",
"input": "1234567890123456789012345678901234567",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/trafficPolicyInstanceId",
"modUri": "tmod:@turbot/aws-route53"
}
}

trafficPolicyVersion

{
"type": "integer",
"minimum": 1,
"maximum": 1000,
"tests": [
{
"input": 10
},
{
"description": "min value",
"input": 1
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - string type provided",
"input": "Hello",
"expected": false
},
{
"description": "invalid - less than min value",
"input": -3,
"expected": false
},
{
"description": "invalid - more than max value",
"input": 111111,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/trafficPolicyVersion",
"modUri": "tmod:@turbot/aws-route53"
}
}

vpcId

{
"type": "string",
"maxLength": 1024,
"tests": [
{
"input": "foo"
},
{
"input": "00123"
},
{
"input": "abcde"
},
{
"input": "vpc-1a2b3c4d"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "null value",
"input": null
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/vpcId",
"modUri": "tmod:@turbot/aws-route53"
}
}

vpcRegion

{
"type": "string",
"enum": [
"us-east-1",
"us-east-2",
"us-west-1",
"us-west-2",
"eu-west-1",
"eu-west-2",
"eu-west-3",
"eu-central-1",
"ap-southeast-1",
"ap-southeast-2",
"ap-south-1",
"ap-northeast-1",
"ap-northeast-2",
"ap-northeast-3",
"sa-east-1",
"ca-central-1",
"cn-north-1"
],
"tests": [
{
"input": "ap-northeast-2"
},
{
"input": "sa-east-1"
},
{
"description": "invalid - null value",
"input": null,
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/vpcRegion",
"modUri": "tmod:@turbot/aws-route53"
}
}

vpcs

{
"type": "object",
"properties": {
"VPCRegion": {
"$ref": "#/definitions/vpcRegion"
},
"VPCId": {
"$ref": "#/definitions/vpcId"
}
},
"tests": [
{
"description": "base",
"input": {
"VPCRegion": "us-east-1",
"VPCId": "vpc-1a2b3c4d"
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-route53#/definitions/vpcs",
"modUri": "tmod:@turbot/aws-route53"
}
}