Definitions for @turbot/aws-ec2

accountLevelAttributes

Schema
{
"type": "array",
"items": {
"AttributeName": {
"type": "string"
},
"AttributeValues": {
"type": "array"
},
"AttributeValue": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/accountLevelAttributes",
"modUri": "tmod:@turbot/aws-ec2"
}
}

additionalAttributes

Schema
{
"type": "object",
"properties": {
"Key": {
"type": "string"
},
"Value": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/additionalAttributes",
"modUri": "tmod:@turbot/aws-ec2"
}
}

allocationId

Schema
{
"type": "string",
"tests": [
{
"input": "foo"
},
{
"input": "usasdss"
},
{
"description": "invalid - passed array instead of string",
"input": [
"foo"
],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/allocationId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ami

Schema
{
"type": "object",
"properties": {
"Architecture": {
"type": "string"
},
"ImageId": {
"$ref": "#/definitions/imageId"
},
"ImageLocation": {
"type": "string"
},
"ImageType": {
"$ref": "#/definitions/imageType"
},
"Public": {
"$ref": "#/definitions/imagePublic"
},
"EnaSupport": {
"$ref": "#/definitions/imageEnaSupport"
},
"Hypervisor": {
"$ref": "#/definitions/imageHypervisor"
},
"Name": {
"type": "string"
},
"RootDeviceName": {
"type": "string"
},
"RootDeviceType": {
"$ref": "#/definitions/imageRootDeviceType"
},
"SriovNetSupport": {
"type": "string"
},
"CreationDate": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"State": {
"$ref": "#/definitions/amiStatus"
},
"Tags": {
"$ref": "#/definitions/tagList"
},
"OwnerId": {
"$ref": "aws#/definitions/accountId"
},
"Platform": {
"type": "string"
},
"ProductCodes": {
"$ref": "#/definitions/instanceProductCodeList"
},
"BlockDeviceMappings": {
"type": "array"
},
"StateReason": {
"$ref": "#/definitions/stateReason"
},
"VirtualizationType": {
"type": "string"
},
"KernelId": {
"$ref": "#/definitions/instanceAttributeValue"
},
"RamdiskId": {
"$ref": "#/definitions/instanceAttributeValue"
},
"Description": {
"type": "string",
"description": "The description of the AMI that was provided during image creation."
},
"ImageOwnerAlias": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/amiAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/imageId"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "all properties given",
"input": {
"ImageId": "ami-0022c769",
"OwnerId": 123456789012,
"Tags": [
{
"Key": "foo",
"Value": "bar"
}
],
"turbot": {
"akas": [
"arn:aws:ec2:us-east-1:123456789012:image/ami-0022c769"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "ami-0022c769",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ami",
"modUri": "tmod:@turbot/aws-ec2"
}
}

amiAka

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ec2:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:image/ami-[0-9a-f]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:ec2:us-east-1:123456789012:image/ami-0022c769"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:ec2:us-east-1:123456789012:images/ami-0022c769",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:ec2:use-east-1:123456789012:image/ami-0022c769",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/amiAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

amiIdMatcher

Schema
{
"type": "string",
"pattern": "^[a-z0-9.?*-]+$",
"tests": [
{
"input": "*"
},
{
"input": "ami-ff81a385"
},
{
"input": "ami-12345678"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
},
{
"description": "invalid - contains special characters",
"input": "ami=ff81a385",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/amiIdMatcher",
"modUri": "tmod:@turbot/aws-ec2"
}
}

amiIdMatcherLockdownList

Schema
{
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9.?*-]+$",
"tests": [
{
"input": "*"
},
{
"input": "ami-ff81a385"
},
{
"input": "ami-12345678"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
},
{
"description": "invalid - contains special characters",
"input": "ami=ff81a385",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/amiIdMatcher",
"modUri": "tmod:@turbot/aws-ec2"
}
},
"example": [
[
"ami-ff81a385",
"ami-12345678"
]
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/amiIdMatcherLockdownList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

amiStatus

Schema
{
"type": "string",
"enum": [
"pending",
"available",
"invalid",
"deregistered",
"transient",
"failed",
"error"
],
"tests": [
{
"input": "available"
},
{
"description": "invalid - not listed in options",
"input": "RUNNABLE",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/amiStatus",
"modUri": "tmod:@turbot/aws-ec2"
}
}

appCookieStickinessPolicies

Schema
{
"type": "array",
"items": {
"$ref": "#/definitions/appCookieStickinessPolicy"
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/appCookieStickinessPolicies",
"modUri": "tmod:@turbot/aws-ec2"
}
}

appCookieStickinessPolicy

Schema
{
"type": "object",
"properties": {
"PolicyName": {
"type": "string"
},
"CookieName": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/appCookieStickinessPolicy",
"modUri": "tmod:@turbot/aws-ec2"
}
}

applicationListenerArn

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:listener/app/[a-zA-Z0-9-]{1,32}/[0-9a-f]{16}/[0-9a-f]{16}$",
"tests": [
{
"input": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2"
},
{
"input": "arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2"
},
{
"description": "invalid - account id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2",
"expected": false
},
{
"description": "invalid - region",
"input": "arn:aws:elasticloadbalancing:usa-west-2:12345789101:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2",
"expected": false
},
{
"description": "invalid - load balancer id",
"input": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/applicationListenerArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

applicationLoadBalancer

Schema
{
"type": "object",
"properties": {
"LoadBalancerArn": {
"$ref": "#/definitions/applicationLoadBalancingArn",
"description": "The Amazon Resource Name (ARN) of the load balancer."
},
"DNSName": {
"$ref": "#/definitions/dnsName",
"description": "The public DNS name of the load balancer."
},
"CanonicalHostedZoneId": {
"$ref": "#/definitions/canonicalHostedZoneId",
"description": "The ID of the Amazon Route 53 hosted zone associated with the load balancer."
},
"CreatedTime": {
"$ref": "#/definitions/createdTime",
"description": "The date and time the load balancer was created."
},
"LoadBalancerName": {
"$ref": "#/definitions/loadBalancerName",
"description": "The name of the load balancer."
},
"Scheme": {
"$ref": "#/definitions/scheme",
"description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer."
},
"VpcId": {
"$ref": "#/definitions/vpcId",
"description": "The ID of the VPC for the load balancer."
},
"State": {
"$ref": "#/definitions/loadBalanceState",
"description": "The state of the load balancer."
},
"Type": {
"$ref": "#/definitions/type",
"description": "The type of load balancer."
},
"AvailabilityZones": {
"$ref": "#/definitions/availabilityZones",
"description": "The Availability Zones for the load balancer."
},
"SecurityGroups": {
"$ref": "#/definitions/securityGroups",
"description": "The IDs of the security groups for the load balancer."
},
"IpAddressType": {
"$ref": "#/definitions/ipAddressType",
"description": "The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses)."
},
"Tags": {
"$ref": "#/definitions/tagList"
},
"LoadBalancerId": {
"$ref": "#/definitions/loadbalancerId"
},
"Attributes": {
"$ref": "#/definitions/loadBalancerAttributes"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/applicationLoadBalancingArn"
}
},
"title": {
"$ref": "#/definitions/loadBalancerName"
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"custom": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - all properties given",
"input": {
"LoadBalancerName": "foo",
"LoadBalancerId": "50dc6c495c0c9188",
"LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
"CanonicalHostedZoneId": "Z3DZXE0EXAMPLE",
"DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com",
"SecurityGroups": [
"sg-a61988c3"
],
"CreatedTime": "2015-03-19T03:24:02.650Z",
"AvailabilityZones": [
{
"ZoneName": "us-west-2a"
}
],
"Type": "application",
"Scheme": "internet-facing",
"IpAddressType": "ipv4",
"VpcId": "vpc-3ac0fb5f",
"State": {
"Code": "active"
},
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
],
"turbot": {
"akas": [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
],
"title": "foo",
"tags": {
"Env": "Test",
"App": "Facebook"
},
"custom": {
"createTimestamp": "2015-03-19T03:24:02.650Z",
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1",
"partition": "aws"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/applicationLoadBalancer",
"modUri": "tmod:@turbot/aws-ec2"
}
}

applicationLoadBalancingArn

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:loadbalancer/app/[a-zA-Z0-9-]{1,32}/[0-9a-f]{16}$",
"tests": [
{
"input": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
},
{
"input": "arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
},
{
"description": "invalid - account id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
"expected": false
},
{
"description": "invalid - region",
"input": "arn:aws:elasticloadbalancing:usa-west-2:12345789101:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
"expected": false
},
{
"description": "invalid - load balancer id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/applicationLoadBalancingArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

association

Schema
{
"type": "object",
"properties": {
"AllocationId": {
"type": "string"
},
"AssociationId": {
"type": "string"
},
"IpOwnerId": {
"type": "string"
},
"PublicDnsName": {
"type": "string"
},
"PublicIp": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/association",
"modUri": "tmod:@turbot/aws-ec2"
}
}

attachmentStatus

Schema
{
"type": "object",
"properties": {
"Status": {
"$ref": "#/definitions/networkInterfaceStatus"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/attachmentStatus",
"modUri": "tmod:@turbot/aws-ec2"
}
}

attributeBooleanValue

Schema
{
"type": "object",
"properties": {
"Value": {
"type": "boolean"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/attributeBooleanValue",
"modUri": "tmod:@turbot/aws-ec2"
}
}

attributes

Schema
{
"type": "object",
"properties": {
"Key": {
"type": "string"
},
"Value": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/attributes",
"modUri": "tmod:@turbot/aws-ec2"
}
}

autoScalingGroup

Schema
{
"type": "object",
"properties": {
"AutoScalingGroupName": {
"$ref": "#/definitions/autoScalingGroupName"
},
"AutoScalingGroupARN": {
"$ref": "#/definitions/autoScalingGroupAka"
},
"LaunchConfigurationName": {
"$ref": "#/definitions/launchConfigurationName"
},
"LaunchTemplate": {
"type": "object"
},
"MixedInstancesPolicy": {
"type": "object"
},
"MinSize": {
"type": "integer"
},
"MaxSize": {
"type": "integer"
},
"DesiredCapacity": {
"type": "integer"
},
"DefaultCooldown": {
"type": "integer"
},
"AvailabilityZones": {
"$ref": "#/definitions/availabilityZones"
},
"LoadBalancerNames": {
"type": "array",
"items": {
"$ref": "#/definitions/loadBalancerName"
}
},
"TargetGroupARNs": {
"type": "array"
},
"HealthCheckType": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"HealthCheckGracePeriod": {
"type": "integer"
},
"Instances": {
"type": "array"
},
"CreatedTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"SuspendedProcesses": {
"type": "array"
},
"PlacementGroup": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"VPCZoneIdentifier": {
"type": "string",
"minLength": 1,
"maxLength": 2047
},
"EnabledMetrics": {
"type": "array"
},
"Status": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"TerminationPolicies": {
"type": "array"
},
"NewInstancesProtectedFromScaleIn": {
"type": "boolean"
},
"ServiceLinkedRoleARN": {
"type": "string",
"minLength": 1,
"maxLength": 1600
},
"MaxInstanceLifetime": {
"type": "integer"
},
"Tags": {
"$ref": "aws#/definitions/tagList"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/autoScalingGroupAka"
}
},
"title": {
"$ref": "#/definitions/autoScalingGroupName"
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "All properties given",
"input": {
"AutoScalingGroupName": "test01",
"AutoScalingGroupARN": "arn:aws:autoscaling:us-west-2:492552618977:autoScalingGroup:402b2ef5-4968-4ccb-9208-c7980983b2bc:autoScalingGroupName/test03",
"Tags": [
{
"Key": "Test01",
"Value": "Test01"
},
{
"Key": "Test02",
"Value": "Test02"
}
],
"turbot": {
"akas": [
"arn:aws:autoscaling:us-west-2:492552618977:autoScalingGroup:402b2ef5-4968-4ccb-9208-c7980983b2bc:autoScalingGroupName/test03"
],
"title": "test01",
"tags": {
"Env": "Test",
"App": "Facebook"
},
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1",
"partition": "aws"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/autoScalingGroup",
"modUri": "tmod:@turbot/aws-ec2"
}
}

autoScalingGroupAka

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:autoscaling:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:autoScalingGroup:[0-9a-z]{8}-[0-9]{4}-[0-9a-z]{4}-[0-9]{4}-[a-z0-9]{12}:autoScalingGroupName/(.{1,255})$",
"tests": [
{
"description": "base",
"input": "arn:aws:autoscaling:us-west-2:492552618977:autoScalingGroup:402b2ef5-4968-4ccb-9208-c7980983b2bc:autoScalingGroupName/test03"
},
{
"description": "invalid service name",
"input": "arn:aws:autoscaling:us-west-2:492552618977:iam:402b2ef5-4968-4ccb-9208-c7980983b2bc:autoScalingGroupName/test03",
"expected": false
},
{
"description": "invalid account id",
"input": "arn:aws:autoscaling:us-west-2:49255266573818977:autoScalingGroup:402b2ef5-4968-4ccb-9208-c7980983b2bc:autoScalingGroupName/test03",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/autoScalingGroupAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

autoScalingGroupName

Schema
{
"type": "string",
"pattern": "^(.{1,255})$",
"tests": [
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "invalid - too long",
"input": "a1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567891234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567",
"expected": false
},
{
"description": "invalid - line termination is not allowed in regex",
"input": "\n",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/autoScalingGroupName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

availabilityZone

Schema
{
"type": "object",
"properties": {
"ZoneName": {
"type": "string"
},
"SubnetId": {
"type": "string"
},
"LoadBalancerAddresses": {
"type": "array"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/availabilityZone",
"modUri": "tmod:@turbot/aws-ec2"
}
}

availabilityZones

Schema
{
"type": "array",
"items": {
"$ref": "#/definitions/availabilityZone"
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/availabilityZones",
"modUri": "tmod:@turbot/aws-ec2"
}
}

backendServerDescription

Schema
{
"type": "object",
"properties": {
"InstancePort": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"PolicyNames": {
"type": "array",
"items": {
"$ref": "#/definitions/policyName"
}
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/backendServerDescription",
"modUri": "tmod:@turbot/aws-ec2"
}
}

backendServerDescriptions

Schema
{
"type": "array",
"items": {
"$ref": "#/definitions/backendServerDescription"
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/backendServerDescriptions",
"modUri": "tmod:@turbot/aws-ec2"
}
}

canonicalHostedZoneId

Schema
{
"type": "string",
"maxLength": 32,
"tests": [
{
"input": "hello@hi.com"
},
{
"input": "foo@123"
},
{
"input": "00123"
},
{
"input": "Test.The-Kitchen_Sink"
},
{
"description": "empty string",
"input": ""
},
{
"description": "max length",
"input": "12345678901234567890123456789012"
},
{
"description": "route53 example",
"input": "Z2YQB5RD63NC85"
},
{
"description": "cloudfront distribution example",
"input": "Z2FDTNDATAQYW2"
},
{
"description": "Elastic Beanstalk example",
"input": "ZL327KTPIQFUL"
},
{
"description": "ELB load balancer example",
"input": "ZZZZZZZZZZZ123X"
},
{
"description": "Amazon S3 example",
"input": "Z2O1EMRO9K5GLX"
},
{
"description": "invalid - too long",
"input": "1234567890123456789012345678901234567890123456789012345678",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/canonicalHostedZoneId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

canonicalHostedZoneName

Schema
{
"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-ec2#/definitions/canonicalHostedZoneName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

capacityReservationSpecificationResponse

Schema
{
"type": "object",
"properties": {
"CapacityReservationPreference": {
"type": "string",
"enum": [
"open",
"none"
]
},
"CapacityReservationTarget": {
"type": "object",
"properties": {
"CapacityReservationId": {
"type": "string"
}
}
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/capacityReservationSpecificationResponse",
"modUri": "tmod:@turbot/aws-ec2"
}
}

certificateArn

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:iam::[0-9]{12}:server-certificate/[a-zA-Z0-9-]+$",
"tests": [
{
"input": "arn:aws:iam::123456789012:server-certificate/my-server-cert"
},
{
"input": "arn:aws:iam::123456789012:server-certificate/myservercert1"
},
{
"description": "invalid - region",
"input": "arn:aws:iam:us-east-1:123456789012:server-certificate/myservercert1",
"expected": false
},
{
"description": "invalid - missing account id",
"input": "arn:aws:iam:::server-certificate/myservercert1",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/certificateArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

classicLoadBalancer

Schema
{
"type": "object",
"properties": {
"AvailabilityZones": {
"$ref": "#/definitions/availabilityZones"
},
"CanonicalHostedZoneId": {
"$ref": "#/definitions/canonicalHostedZoneId"
},
"CanonicalHostedZoneName": {
"$ref": "#/definitions/canonicalHostedZoneName"
},
"VpcId": {
"$ref": "#/definitions/vpcId"
},
"DNSName": {
"$ref": "#/definitions/dnsName"
},
"IpAddressType": {
"$ref": "#/definitions/ipAddressType"
},
"LoadBalancerArn": {
"$ref": "#/definitions/classicLoadBalancingArn"
},
"LoadBalancerName": {
"$ref": "#/definitions/loadBalancerName"
},
"CreatedTime": {
"$ref": "#/definitions/createdTime"
},
"Scheme": {
"$ref": "#/definitions/scheme"
},
"SecurityGroups": {
"$ref": "#/definitions/securityGroups"
},
"Subnets": {
"$ref": "#/definitions/subnets"
},
"Type": {
"$ref": "#/definitions/type"
},
"ListenerDescriptions": {
"$ref": "#/definitions/listenerDescriptions"
},
"Policies": {
"$ref": "#/definitions/policies"
},
"BackendServerDescriptions": {
"$ref": "#/definitions/backendServerDescriptions"
},
"Instances": {
"type": "object"
},
"HealthCheck": {
"$ref": "#/definitions/healthCheck"
},
"SourceSecurityGroup": {
"$ref": "#/definitions/sourceSecurityGroup"
},
"Tags": {
"$ref": "aws#/definitions/tagList"
},
"LoadBalancerAttributes": {
"$ref": "#/definitions/loadBalancerAttributes"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/classicLoadBalancingArn"
}
},
"title": {
"$ref": "#/definitions/loadBalancerName"
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"tests": [
{
"description": "all properties given",
"input": {
"turbot": {
"akas": [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/my-load-balancer"
],
"title": "my-load-balancer",
"tags": {
"Env": "Test",
"App": "Facebook"
},
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1",
"partition": "aws"
}
}
},
"LoadBalancerName": "foo",
"LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/my-load-balancer",
"CanonicalHostedZoneId": "Z3DZXE0EXAMPLE",
"CanonicalHostedZoneName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com",
"VpcId": "vpc-3ac0fb5f",
"ListenerDescriptions": [
{
"Listener": {
"InstancePort": 80,
"LoadBalancerPort": 80,
"Protocol": "HTTP",
"InstanceProtocol": "HTTP"
},
"PolicyNames": [
"hi",
"hello"
]
}
],
"DNSName": "my-load-balancer-1234567890.us-west-2.elb.amazonaws.com",
"SecurityGroups": [
"sg-a61988c3"
],
"CreatedTime": "2015-03-19T03:24:02.650Z",
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
],
"AvailabilityZones": [
{
"ZoneName": "us-west-2a"
}
]
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/classicLoadBalancer",
"modUri": "tmod:@turbot/aws-ec2"
}
}

classicLoadBalancerListener

Schema
{
"type": "object",
"properties": {
"LoadBalancerName": {
"type": "string"
},
"Protocol": {
"$ref": "#/definitions/Protocol"
},
"InstancePort": {
"type": "integer"
},
"InstanceProtocol": {
"$ref": "#/definitions/InstanceProtocol"
},
"LoadBalancerPort": {
"type": "integer"
},
"SSLCertificateId": {
"type": "string"
},
"PolicyNames": {
"type": "array",
"items": {
"type": "string"
}
},
"turbot": {
"type": "object",
"properties": {
"metadata": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/classicLoadBalancerListener",
"modUri": "tmod:@turbot/aws-ec2"
}
}

classicLoadBalancingArn

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:loadbalancer/[a-zA-Z0-9](?:[-a-zA-Z0-9]{0,30}[a-zA-Z0-9])?$",
"tests": [
{
"input": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/my-load-balancer"
},
{
"input": "arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:loadbalancer/my-load-balancer"
},
{
"description": "invalid - account id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:loadbalancer/my-load-balancer",
"expected": false
},
{
"description": "invalid - region",
"input": "arn:aws:elasticloadbalancing:usa-west-2:12345789101:loadbalancer/my-load-balancer",
"expected": false
},
{
"description": "invalid - load balancer id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:loadbalancer/my-load-balancer",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/classicLoadBalancingArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

code

Schema
{
"type": "string",
"enum": [
"active",
"provisioning",
"active_impaired",
"failed"
],
"tests": [
{
"input": "active"
},
{
"input": "provisioning"
},
{
"description": "invalid - uppercase value",
"input": "ACTIVE",
"expected": false
},
{
"description": "invalid - not listed in the options",
"input": "foo",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/code",
"modUri": "tmod:@turbot/aws-ec2"
}
}

Code

Schema
{
"type": "string",
"enum": [
"active",
"provisioning",
"active_impaired",
"failed"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/Code",
"modUri": "tmod:@turbot/aws-ec2"
}
}

cpuOptions

Schema
{
"type": "object",
"properties": {
"CoreCount": {
"type": "integer"
},
"ThreadsPerCore": {
"type": "integer"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/cpuOptions",
"modUri": "tmod:@turbot/aws-ec2"
}
}

createdTime

Schema
{
"$ref": "turbot#/definitions/isoTimestamp",
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/createdTime",
"modUri": "tmod:@turbot/aws-ec2"
}
}

crossZoneLoadBalancing

Schema
{
"type": "object",
"properties": {
"Enabled": {
"type": "boolean"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/crossZoneLoadBalancing",
"modUri": "tmod:@turbot/aws-ec2"
}
}

dnsName

Schema
{
"$ref": "#/definitions/canonicalHostedZoneName",
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/dnsName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ebsInstanceBlockDevice

Schema
{
"type": "object",
"properties": {
"AttachTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"DeleteOnTermination": {
"type": "boolean"
},
"Status": {
"$ref": "#/definitions/eniAttachmentStatus"
},
"VolumeId": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ebsInstanceBlockDevice",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ec2

Schema
{
"allOf": [
{
"$ref": "turbot#/definitions/service"
},
{
"type": "object",
"properties": {
"name": {
"const": "EC2"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/ec2Aka"
}
},
"title": {
"const": "EC2"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "EC2",
"input": {
"name": "EC2",
"turbot": {
"akas": [
"arn:aws:ec2:us-east-1:123456789012"
],
"title": "EC2",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
},
{
"description": "Invalid - elasticcomputecloud",
"input": {
"name": "elasticcomputecloud",
"turbot": null,
"akas": [
"arn:aws:ec2:us-east-1:123456789012"
],
"title": "EC2",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
},
"expected": false
},
{
"description": "Invalid - Service name missing",
"input": {
"turbot": null,
"akas": [
"arn:aws:ec2:us-east-1:123456789012"
],
"title": "EC2",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
},
"expected": false
}
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ec2",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ec2AccountAttributes

Schema
{
"type": "object",
"properties": {
"AccountAttributes": {
"$ref": "#/definitions/accountLevelAttributes"
},
"KmsKeyId": {
"type": "string"
},
"RegionName": {
"type": "string"
},
"OptInStatus": {
"type": "string"
},
"Endpoint": {
"type": "string"
},
"EbsEncryptionByDefault": {
"type": "boolean"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/ec2AccountAttributesAka"
}
},
"title": {
"const": "Account Attributes"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"AccountAttributes": [
{
"AttributeName": "supported-platforms",
"AttributeValues": [
{
"AttributeValue": "5"
}
]
}
],
"Endpoint": "ec2.sa-east-1.amazonaws.com",
"RegionName": "sa-east-1",
"OptInStatus": "opt-in-not-required",
"KmsKeyId": "alias/aws/ebs",
"EbsEncryptionByDefault": false,
"turbot": {
"akas": [
"arn:aws:ec2:us-west-2:492552618977:accountAttribute"
],
"title": "Account Attributes",
"custom": {
"aws": {
"accountId": 123456789012
},
"createTimestamp": "2018-12-05T14:53:33.000Z"
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ec2AccountAttributes",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ec2AccountAttributesAka

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ec2:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:accountattributes$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:ec2:us-west-2:492552618977:accountattributes"
},
{
"description": "Invalid - account Id",
"input": "arn:aws:s3::1116660:account",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ec2AccountAttributesAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ec2Aka

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

ec2NetworkLoadbalancerStatus

Schema
{
"type": "string",
"enum": [
"active",
"provisioning",
"active_impaired",
"failed"
],
"tests": [
{
"description": "valid - correct status type",
"input": "active"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ec2NetworkLoadbalancerStatus",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ec2SupportedRegions

Schema
{
"type": "array",
"items": {
"$ref": "#/definitions/regionName"
},
"minItems": 1,
"example": [
[
"us-east-2",
"us-east-1"
]
],
"default": [
"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-gov-west-1",
"us-west-1",
"us-west-2"
],
"tests": [
{
"description": "one region",
"input": [
"us-east-1"
]
},
{
"description": "all supported regions",
"input": [
"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-gov-west-1",
"us-west-1",
"us-west-2"
]
},
{
"description": "invalid - no regions",
"input": [],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ec2SupportedRegions",
"modUri": "tmod:@turbot/aws-ec2"
}
}

elasticGpuAssociation

Schema
{
"type": "object",
"properties": {
"ElasticGpuId": {
"type": "string"
},
"ElasticGpuAssociationId": {
"type": "string"
},
"ElasticGpuAssociationState": {
"type": "string"
},
"ElasticGpuAssociationTime": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/elasticGpuAssociation",
"modUri": "tmod:@turbot/aws-ec2"
}
}

elasticGpuAssociationList

Schema
{
"type": "array",
"items": {
"$ref": "#/definitions/elasticGpuAssociation"
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/elasticGpuAssociationList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

elasticInferenceAcceleratorAssociation

Schema
{
"type": "object",
"properties": {
"ElasticInferenceAcceleratorArn": {
"type": "string"
},
"ElasticInferenceAcceleratorAssociationId": {
"type": "string"
},
"ElasticInferenceAcceleratorAssociationState": {
"type": "string"
},
"ElasticInferenceAcceleratorAssociationTime": {
"$ref": "turbot#/definitions/isoTimestamp"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/elasticInferenceAcceleratorAssociation",
"modUri": "tmod:@turbot/aws-ec2"
}
}

elasticInferenceAcceleratorAssociationList

Schema
{
"type": "array",
"items": {
"$ref": "#/definitions/elasticInferenceAcceleratorAssociation"
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/elasticInferenceAcceleratorAssociationList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

eniAttachmentStatus

Schema
{
"type": "string",
"enum": [
"attaching",
"attached",
"detaching",
"detached"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/eniAttachmentStatus",
"modUri": "tmod:@turbot/aws-ec2"
}
}

eniStatus

Schema
{
"type": "string",
"enum": [
"available",
"associated",
"attaching",
"in-use",
"detaching"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/eniStatus",
"modUri": "tmod:@turbot/aws-ec2"
}
}

gatewayLoadBalancer

Schema
{
"type": "object",
"properties": {
"AvailabilityZones": {
"type": "array",
"items": {
"type": "object"
}
},
"CanonicalHostedZoneId": {
"type": "string"
},
"CreatedTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"DNSName": {
"type": "string"
},
"IpAddressType": {
"$ref": "#/definitions/IpAddressType"
},
"LoadBalancerAddresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"AllocationId": {
"type": "string"
},
"AvailabilityZones": {
"type": "array",
"items": {
"type": "object",
"properties": {
"SubnetId": {
"type": "string"
},
"ZoneName": {
"type": "string"
}
}
}
},
"IpAddress": {
"type": "string"
},
"PrivateIPv4Address": {
"type": "string"
}
}
}
},
"LoadBalancerArn": {
"$ref": "#/definitions/gatewayLoadBalancerArn"
},
"LoadBalancerName": {
"$ref": "#/definitions/loadBalancerName"
},
"Scheme": {
"type": "string"
},
"SecurityGroups": {
"type": "array",
"items": {
"type": "string"
}
},
"State": {
"type": "object",
"properties": {
"Code": {
"$ref": "#/definitions/Code"
},
"Reason": {
"type": "string"
}
}
},
"Type": {
"$ref": "#/definitions/Type"
},
"VpcId": {
"type": "string"
},
"Tags": {
"$ref": "aws#/definitions/tagList",
"type": "object",
"properties": {
"Value": {
"type": "string"
}
}
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/gatewayLoadBalancerArn"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/loadBalancerName"
},
"metadata": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/gatewayLoadBalancer",
"modUri": "tmod:@turbot/aws-ec2"
}
}

gatewayLoadBalancerArn

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:loadbalancer/gwy/[a-zA-Z0-9](?:[-a-zA-Z0-9]{0,30}[a-zA-Z0-9])?/[0-9a-f]{16}$",
"tests": [
{
"input": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/gwy/my-load-balancer/50dc6c495c0c9188"
},
{
"input": "arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:loadbalancer/gwy/my-load-balancer/50dc6c495c0c9188"
},
{
"description": "invalid - account id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:loadbalancer/gwy/my-load-balancer/50dc6c495c0c9188",
"expected": false
},
{
"description": "invalid - region",
"input": "arn:aws:elasticloadbalancing:usa-west-2:12345789101:loadbalancer/gwy/my-load-balancer/50dc6c495c0c9188",
"expected": false
},
{
"description": "invalid - load balancer id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:loadbalancer/gwy/my-load-balancer/50dc6c495c0c9188",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/gatewayLoadBalancerArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

groupIdentifier

Schema
{
"type": "object",
"properties": {
"GroupName": {
"type": "string"
},
"GroupId": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/groupIdentifier",
"modUri": "tmod:@turbot/aws-ec2"
}
}

groupIdentifierList

Schema
{
"type": "array",
"properties": {
"GroupName": {
"type": "string"
},
"GroupId": {
"type": "string"
}
},
"items": {
"$ref": "#/definitions/groupIdentifier"
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/groupIdentifierList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

healthCheck

Schema
{
"type": "object",
"properties": {
"Target": {
"type": "string"
},
"Interval": {
"type": "integer",
"minimum": 5,
"maximum": 300
},
"Timeout": {
"type": "integer",
"minimum": 2,
"maximum": 60
},
"UnhealthyThreshold": {
"type": "integer",
"minimum": 2,
"maximum": 10
},
"HealthyThreshold": {
"type": "integer",
"minimum": 2,
"maximum": 10
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/healthCheck",
"modUri": "tmod:@turbot/aws-ec2"
}
}

healthCheckIntervalSeconds

Schema
{
"type": "integer",
"minimum": 5,
"maximum": 300,
"tests": [
{
"input": 10
},
{
"input": 90
},
{
"description": "minimum",
"input": 5
},
{
"description": "maximum",
"input": 300
},
{
"description": "invalid - decimal value provided",
"input": 4.5,
"expected": false
},
{
"description": "invalid - string tpye provided",
"input": "three",
"expected": false
},
{
"description": "invalid - less than minimum",
"input": 4,
"expected": false
},
{
"description": "invalid - greater than maximum",
"input": 301,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/healthCheckIntervalSeconds",
"modUri": "tmod:@turbot/aws-ec2"
}
}

healthCheckPath

Schema
{
"type": "string",
"minLength": 1,
"maxLength": 1024,
"tests": [
{
"input": "a"
},
{
"input": "gdghdhhd"
},
{
"description": "minimum",
"input": "/"
},
{
"description": "invalid - null",
"input": null,
"expected": false
},
{
"description": "invalid - passed array instead of string",
"input": [
"foo"
],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/healthCheckPath",
"modUri": "tmod:@turbot/aws-ec2"
}
}

healthCheckPort

Schema
{
"type": "string",
"pattern": "^[a-z0-9-]+$",
"tests": [
{
"input": "traffic-port"
},
{
"input": 80
},
{
"description": "invalid - uppercase value",
"input": "TRAFFIC-PORT",
"expected": false
},
{
"description": "invalid - passed array instead of string",
"input": [],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/healthCheckPort",
"modUri": "tmod:@turbot/aws-ec2"
}
}

healthCheckProtocol

Schema
{
"type": "string",
"enum": [
"HTTP",
"HTTPS",
"TCP"
],
"tests": [
{
"input": "HTTP"
},
{
"input": "TCP"
},
{
"description": "invalid - lowercase value",
"input": "tcp",
"expected": false
},
{
"description": "invalid - not listed in the options",
"input": "foo",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/healthCheckProtocol",
"modUri": "tmod:@turbot/aws-ec2"
}
}

healthCheckTimeoutSeconds

Schema
{
"type": "integer",
"minimum": 2,
"maximum": 60,
"tests": [
{
"input": 10
},
{
"input": 30
},
{
"description": "minimum",
"input": 2
},
{
"description": "maximum",
"input": 60
},
{
"description": "invalid - decimal value provided",
"input": 4.5,
"expected": false
},
{
"description": "invalid - string tpye provided",
"input": "three",
"expected": false
},
{
"description": "invalid - less than minimum",
"input": 1,
"expected": false
},
{
"description": "invalid - greater than maximum",
"input": 301,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/healthCheckTimeoutSeconds",
"modUri": "tmod:@turbot/aws-ec2"
}
}

healthyThresholdCount

Schema
{
"type": "integer",
"minimum": 2,
"maximum": 10,
"tests": [
{
"input": 5
},
{
"input": 7
},
{
"description": "minimum",
"input": 2
},
{
"description": "maximum",
"input": 10
},
{
"description": "invalid - decimal value provided",
"input": 4.5,
"expected": false
},
{
"description": "invalid - string tpye provided",
"input": "three",
"expected": false
},
{
"description": "invalid - less than minimum",
"input": 1,
"expected": false
},
{
"description": "invalid - greater than maximum",
"input": 11,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/healthyThresholdCount",
"modUri": "tmod:@turbot/aws-ec2"
}
}

hibernationOptions

Schema
{
"type": "object",
"properties": {
"Configured": {
"type": "boolean"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/hibernationOptions",
"modUri": "tmod:@turbot/aws-ec2"
}
}

httpCode

Schema
{
"type": "string",
"pattern": "^[0-9]{3}$",
"tests": [
{
"input": 404
},
{
"input": 200
},
{
"description": "invalid - greater than max length",
"input": 4044,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/httpCode",
"modUri": "tmod:@turbot/aws-ec2"
}
}

httpTokensState

Schema
{
"type": "string",
"enum": [
"optional",
"required"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/httpTokensState",
"modUri": "tmod:@turbot/aws-ec2"
}
}

iamInstanceProfile

Schema
{
"type": "object",
"properties": {
"Arn": {
"type": "string"
},
"Id": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/iamInstanceProfile",
"modUri": "tmod:@turbot/aws-ec2"
}
}

imageEnaSupport

Schema
{
"type": "boolean",
"tests": [
{
"input": true
},
{
"input": false
},
{
"input": "true"
},
{
"input": 0
},
{
"input": "false"
},
{
"description": "invalid - string",
"input": "foo",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/imageEnaSupport",
"modUri": "tmod:@turbot/aws-ec2"
}
}

imageHypervisor

Schema
{
"type": "string",
"enum": [
"ovm",
"xen"
],
"tests": [
{
"input": "xen"
},
{
"input": "ovm"
},
{
"description": "Invalid - not listed in options",
"input": "grey",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/imageHypervisor",
"modUri": "tmod:@turbot/aws-ec2"
}
}

imageId

Schema
{
"type": "string",
"pattern": "^ami-[a-f0-9]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"input": "ami-df90ecb0"
},
{
"input": "ami-df8dd2b0df8dd2b01"
},
{
"description": "invalid - image id is invalid if more than 12 char and less than 21",
"input": "ami-df8dd2b01",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
},
{
"description": "invalid - image id beyond the regex",
"input": "Hello@123",
"expected": false
},
{
"description": "invalid - $ in image id",
"input": "Hello$123",
"expected": false
},
{
"description": "invalid - image id is invalid if 2 or less chars",
"input": 12,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/imageId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

imagePublic

Schema
{
"type": "boolean",
"tests": [
{
"input": true
},
{
"input": false
},
{
"input": "true"
},
{
"input": 0
},
{
"input": "false"
},
{
"description": "invalid - string",
"input": "foo",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/imagePublic",
"modUri": "tmod:@turbot/aws-ec2"
}
}

imageRootDeviceType

Schema
{
"type": "string",
"enum": [
"ebs",
"instance-store"
],
"tests": [
{
"input": "instance-store"
},
{
"input": "ebs"
},
{
"description": "Invalid - not listed in options",
"input": "grey",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/imageRootDeviceType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

imageType

Schema
{
"type": "string",
"enum": [
"machine",
"kernel",
"ramdisk"
],
"tests": [
{
"description": "Valid - Base case",
"input": "machine"
},
{
"description": "Invalid - not listed in options",
"input": "grey",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/imageType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instance

Schema
{
"type": "object",
"properties": {
"AmiLaunchIndex": {
"type": "integer"
},
"ImageId": {
"type": "string"
},
"InstanceId": {
"$ref": "#/definitions/instanceId"
},
"InstanceType": {
"$ref": "#/definitions/instanceType"
},
"EnclaveOptions": {
"type": "object"
},
"KeyName": {
"type": "string"
},
"LaunchTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"Monitoring": {
"$ref": "#/definitions/instanceMonitoring"
},
"Placement": {
"$ref": "#/definitions/instancePlacement"
},
"Platform": {
"type": "string",
"enum": [
"Windows"
]
},
"PrivateDnsName": {
"type": "string"
},
"PrivateIpAddress": {
"type": "string"
},
"ProductCodes": {
"type": "array",
"items": {
"$ref": "#/definitions/instanceProductCodeList"
}
},
"PublicDnsName": {
"type": "string"
},
"PublicIpAddress": {
"type": "string"
},
"State": {
"$ref": "#/definitions/instanceState"
},
"StateTransitionReason": {
"type": "string"
},
"SubnetId": {
"type": "string"
},
"VpcId": {
"type": "string"
},
"Architecture": {
"type": "string",
"enum": [
"i386",
"x86_64",
"arm64"
]
},
"BlockDeviceMappings": {
"type": "array",
"items": {
"$ref": "#/definitions/instanceBlockDeviceMapping"
}
},
"ClientToken": {
"type": "string"
},
"EbsOptimized": {
"type": "boolean"
},
"EnaSupport": {
"type": "boolean"
},
"Hypervisor": {
"$ref": "#/definitions/instanceHypervisorType"
},
"IamInstanceProfile": {
"$ref": "#/definitions/iamInstanceProfile"
},
"InstanceLifecycle": {
"$ref": "#/definitions/instanceLifecycleType"
},
"ElasticGpuAssociations": {
"$ref": "#/definitions/elasticGpuAssociationList"
},
"ElasticInferenceAcceleratorAssociations": {
"$ref": "#/definitions/elasticInferenceAcceleratorAssociationList"
},
"NetworkInterfaces": {
"$ref": "#/definitions/instanceNetworkInterfaceList"
},
"OutpostArn": {
"type": "string"
},
"RootDeviceName": {
"type": "string"
},
"RootDeviceType": {
"$ref": "#/definitions/rootDeviceType"
},
"SecurityGroups": {
"type": "array",
"items": {
"$ref": "#/definitions/sgIdentifierList"
}
},
"SourceDestCheck": {
"type": "boolean"
},
"SpotInstanceRequestId": {
"type": "string"
},
"StateReason": {
"$ref": "#/definitions/stateReason"
},
"Tags": {
"$ref": "#/definitions/tagList"
},
"VirtualizationType": {
"type": "string",
"enum": [
"hvm",
"paravirtual"
]
},
"CpuOptions": {
"$ref": "#/definitions/cpuOptions"
},
"CapacityReservationId": {
"type": "string"
},
"CapacityReservationSpecification": {
"$ref": "#/definitions/capacityReservationSpecificationResponse"
},
"HibernationOptions": {
"$ref": "#/definitions/hibernationOptions"
},
"Licenses": {
"type": "array",
"items": {
"$ref": "#/definitions/licenseConfiguration"
}
},
"MetadataOptions": {
"$ref": "#/definitions/instanceMetadataOptionsResponse"
},
"Groups": {
"$ref": "#/definitions/groupIdentifierList"
},
"DisableApiTermination": {
"$ref": "#/definitions/attributeBooleanValue"
},
"InstanceInitiatedShutdownBehavior": {
"$ref": "#/definitions/instanceAttributeValue"
},
"KernelId": {
"$ref": "#/definitions/instanceAttributeValue"
},
"RamdiskId": {
"$ref": "#/definitions/instanceAttributeValue"
},
"SriovNetSupport": {
"$ref": "#/definitions/instanceAttributeValue"
},
"UserData": {
"$ref": "#/definitions/instanceAttributeValue"
},
"RootDeviceEncrypted": {
"type": "boolean"
},
"Attribute": {
"$ref": "#/definitions/instanceAttribute"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/instanceAka"
}
},
"tags": {
"$ref": "#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/instanceId"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"InstanceId": "i-a2345678",
"InstanceType": "t3.medium",
"RootDeviceName": "/dev/xvda",
"RootDeviceType": "ebs",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2018-08-16T19:43:39.000Z",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-0b116439a12abc34d"
}
}
],
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
],
"turbot": {
"akas": [
"arn:aws:ec2:us-east-1:123456789012:instance/i-a2345678"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "i-a2345678",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instance",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceAka

Schema
{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ec2:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:instance/i-[0-9a-f]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:ec2:us-east-1:123456789012:instance/i-a2345678"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:ec2:us-east-1:123456789012:instances/i-a2345678",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:ec2:use-east-1:123456789012:instances/i-a2345678",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:ec2:us-east-1:1234567890123:instances/i-a2345678",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceAttribute

Schema
{
"type": "string",
"enum": [
"instanceType",
"kernel",
"ramdisk",
"userData",
"disableApiTermination",
"instanceInitiatedShutdownBehavior",
"rootDeviceName",
"blockDeviceMapping",
"productCodes",
"sourceDestCheck",
"groupSet",
"ebsOptimized",
"sriovNetSupport",
"enaSupport"
],
"tests": [
{
"description": "valid - correct status type",
"input": "userData"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceAttribute",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceAttributeValue

Schema
{
"type": "object",
"properties": {
"Value": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceAttributeValue",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceBlockDeviceMapping

Schema
{
"type": "object",
"properties": {
"DeviceName": {
"type": "string"
},
"Ebs": {
"$ref": "#/definitions/ebsInstanceBlockDevice"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceBlockDeviceMapping",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceHypervisorType

Schema
{
"type": "string",
"enum": [
"ovm",
"xen"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceHypervisorType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceId

Schema
{
"type": "string",
"pattern": "^i-[0-9a-f]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"input": "i-a2345678"
},
{
"input": "i-1234567890abcdef0"
},
{
"description": "invalid - characters allowed from a to f only",
"input": "i-1234567890abcdefz",
"expected": false
},
{
"description": "invalid - should always start with i",
"input": "id-b61106d4",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceId",
"modUri": "tmod:@turbot/aws-ec2"
}
}