Definitions for @turbot/aws-ec2

accountLevelAttributes

{
"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

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

allocationId

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

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

appCookieStickinessPolicy

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

applicationListenerArn

{
"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

{
"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

{
"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

{
"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

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

attributeBooleanValue

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

attributes

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

autoScalingGroup

{
"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

{
"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

{
"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

{
"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

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

backendServerDescription

{
"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

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

canonicalHostedZoneId

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

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

cpuOptions

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

createdTime

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

crossZoneLoadBalancing

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

dnsName

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

ebsInstanceBlockDevice

{
"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

{
"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

{
"type": "object",
"properties": {
"AccountAttributes": {
"$ref": "#/definitions/accountLevelAttributes"
},
"KmsKeyId": {
"type": "string"
},
"RegionName": {
"type": "string"
},
"OptInStatus": {
"type": "string"
},
"Endpoint": {
"type": "string"
},
"EbsEncryptionByDefault": {
"type": "boolean"
},
"InstanceMetadataServiceDefault": {
"$ref": "#/definitions/instanceMetadataServiceDefault"
},
"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

{
"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

{
"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

{
"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

{
"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

{
"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

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

elasticInferenceAcceleratorAssociation

{
"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

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

eniAttachmentStatus

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

eniStatus

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

gatewayLoadBalancer

{
"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

{
"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

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

groupIdentifierList

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

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

httpCode

{
"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

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

iamInstanceProfile

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

imageEnaSupport

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

{
"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

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

instanceBlockDeviceMapping

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

instanceHypervisorType

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

instanceId

{
"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"
}
}

instanceIpv6Address

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

instanceLifecycleType

{
"type": "string",
"enum": [
"spot",
"scheduled"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceLifecycleType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceMetadataEndpointState

{
"type": "string",
"enum": [
"disabled",
"enabled"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceMetadataEndpointState",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceMetadataOptionsResponse

{
"type": "object",
"properties": {
"State": {
"$ref": "#/definitions/instanceMetadataOptionsState"
},
"HttpTokens": {
"$ref": "#/definitions/httpTokensState"
},
"HttpPutResponseHopLimit": {
"type": "integer"
},
"HttpEndpoint": {
"$ref": "#/definitions/instanceMetadataEndpointState"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceMetadataOptionsResponse",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceMetadataOptionsState

{
"type": "string",
"enum": [
"pending",
"applied"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceMetadataOptionsState",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceMetadataServiceDefault

{
"type": "object",
"properties": {
"HttpTokens": {
"$ref": "#/definitions/httpTokensState"
},
"HttpPutResponseHopLimit": {
"type": "integer"
},
"HttpEndpoint": {
"$ref": "#/definitions/instanceMetadataEndpointState"
},
"InstanceMetadataTags": {
"$ref": "#/definitions/instanceMetadataTags"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceMetadataServiceDefault",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceMetadataTags

{
"type": "string",
"enum": [
"disabled",
"enabled"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceMetadataTags",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceMonitoring

{
"type": "object",
"properties": {
"State": {
"type": "string",
"enum": [
"disabled",
"disabling",
"enabled",
"pending"
]
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceMonitoring",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceNetworkInterface

{
"type": "object",
"properties": {
"Association": {
"$ref": "#/definitions/instanceNetworkInterfaceAssociation"
},
"Attachment": {
"$ref": "#/definitions/instanceNetworkInterfaceAttachment"
},
"Description": {
"type": "string"
},
"Groups": {
"type": "array",
"items": {
"$ref": "#/definitions/groupIdentifier"
}
},
"Ipv6Addresses": {
"type": "array",
"items": {
"$ref": "#/definitions/instanceIpv6Address"
}
},
"MacAddress": {
"type": "string"
},
"NetworkInterfaceId": {
"type": "string"
},
"OwnerId": {
"type": "string"
},
"PrivateDnsName": {
"type": "string"
},
"PrivateIpAddress": {
"type": "string"
},
"PrivateIpAddresses": {
"type": "array",
"items": {
"$ref": "#/definitions/instancePrivateIpAddress"
}
},
"SourceDestCheck": {
"type": "boolean"
},
"Status": {
"$ref": "#/definitions/instanceNetworkInterfaceStatus"
},
"SubnetId": {
"type": "string"
},
"VpcId": {
"type": "string"
},
"InterfaceType": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceNetworkInterface",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceNetworkInterfaceAssociation

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

InstanceNetworkInterfaceAssociation

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

instanceNetworkInterfaceAttachment

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

instanceNetworkInterfaceList

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

instanceNetworkInterfaceStatus

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

instancePlacement

{
"type": "object",
"properties": {
"AvailabilityZone": {
"type": "string"
},
"Affinity": {
"type": "string"
},
"GroupName": {
"type": "string"
},
"PartitionNumber": {
"type": "integer"
},
"HostId": {
"type": "string"
},
"Tenancy": {
"type": "string",
"enum": [
"default",
"dedicated",
"host"
]
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instancePlacement",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instancePrivateIpAddress

{
"type": "object",
"properties": {
"Association": {
"$ref": "#/definitions/instanceNetworkInterfaceAssociation"
},
"Primary": {
"type": "boolean"
},
"PrivateDnsName": {
"type": "string"
},
"PrivateIpAddress": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instancePrivateIpAddress",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceProductCodeList

{
"type": "object",
"properties": {
"ProductCodeId": {
"type": "string"
},
"ProductCodeType": {
"type": "string",
"enum": [
"devpay",
"marketplace"
]
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceProductCodeList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

InstanceProtocol

{
"type": "string",
"enum": [
"HTTP",
"HTTPS",
"TCP",
"SSL"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/InstanceProtocol",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceServiceNow

{
"defaultColumns": {
"account_id": {
"column": "enabled",
"path": "metadata.aws.accountId",
"label": "Account ID"
},
"ami_launch_index": {
"column": "enabled",
"label": "AMI Launch Index",
"type": "integer"
},
"architecture": {
"column": "enabled",
"label": "Architecture"
},
"arn": {
"column": "enabled",
"label": "ARN"
},
"instance_id": {
"column": "enabled",
"label": "Instance ID"
},
"instance_type": {
"column": "enabled",
"label": "Instance Type"
},
"key_name": {
"column": "enabled",
"label": "Key Name"
},
"launch_time": {
"column": "enabled",
"label": "Launch Time"
},
"network_interfaces": {
"column": "enabled",
"label": "Network Interfaces",
"type": "string",
"size": 1000
},
"placement_availability_zone": {
"column": "enabled",
"label": "Placement Availability Zone"
},
"private_ip_address": {
"column": "enabled",
"label": "Private Ip Address"
},
"public_dns_name": {
"column": "enabled",
"label": "Public DNS Name"
},
"public_ip_address": {
"column": "enabled",
"label": "Public IP Address"
},
"region": {
"column": "enabled",
"label": "Region",
"path": "metadata.aws.regionName"
},
"security_groups": {
"column": "enabled",
"label": "Security Groups",
"type": "string",
"size": 1000
},
"subnet_id": {
"column": "enabled",
"label": "Subnet ID"
},
"tags": {
"column": "enabled",
"label": "Tags",
"type": "string",
"size": 1000
},
"vpc_id": {
"column": "enabled",
"label": "VPC ID"
},
"virtualization_type": {
"column": "enabled",
"label": "Virtualization Type"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceServiceNow",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceState

{
"type": "object",
"properties": {
"Code": {
"type": "integer"
},
"Name": {
"type": "string",
"enum": [
"pending",
"running",
"shutting-down",
"terminated",
"stopping",
"stopped"
]
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceState",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceType

{
"type": "string",
"pattern": "[0-9a-z]+\\.[0-9a-z]+",
"tests": [
{
"input": "t2.large"
},
{
"input": "m5d.large"
},
{
"description": "invalid - missing period",
"input": "t2micro",
"expected": false
},
{
"description": "invalid - missing class",
"input": ".small",
"expected": false
},
{
"description": "invalid - missing size",
"input": "m5.",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceTypeMatcher

{
"type": "string",
"pattern": "^[a-z0-9.?*]+$",
"tests": [
{
"input": "*"
},
{
"input": "t2.*"
},
{
"input": "*.medium"
},
{
"input": "m?.medium"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
},
{
"description": "invalid - contains hyphen",
"input": "t2-large",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceTypeMatcher",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceTypeMatcherList

{
"type": "array",
"items": {
"$ref": "#/definitions/instanceTypeMatcher"
},
"example": [
[
"m1.small",
"t?.large"
],
[
"*.large",
"t3.*"
]
],
"default": [
"*"
],
"tests": [
{
"description": "one pattern",
"input": [
"*.medium"
]
},
{
"description": "two patterns",
"input": [
"*",
"t2.*"
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceTypeMatcherList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

instanceTypeMatcherLockdownList

{
"type": "array",
"items": {
"$ref": "#/definitions/instanceTypeMatcher"
},
"example": [
[
"m1.small",
"t?.large"
],
[
"*.large",
"t3.*"
]
],
"tests": [
{
"description": "one pattern",
"input": [
"*.medium"
]
},
{
"description": "two patterns",
"input": [
"*",
"t2.*"
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/instanceTypeMatcherLockdownList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ipAddress

{
"type": "string",
"pattern": "^[0-5]{1,3}\\.[0-5]{1,3}\\.[0-5]{1,3}\\.[0-5]{1,3}$",
"tests": [
{
"input": "0.0.0.0"
},
{
"input": "255.255.255.255"
},
{
"description": "invalid - ip address",
"input": "298.1.1.1",
"expected": false
},
{
"description": "invalid - region",
"input": "1.1.1",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ipAddress",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ipAddressType

{
"type": "string",
"enum": [
"ipv4",
"dualstack"
],
"tests": [
{
"input": "ipv4"
},
{
"input": "dualstack"
},
{
"description": "invalid - uppercase value",
"input": "IPV4",
"expected": false
},
{
"description": "invalid - not listed in the options",
"input": "foo",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ipAddressType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

IpAddressType

{
"type": "string",
"enum": [
"ipv4",
"dualstack"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/IpAddressType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

isDefault

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

keyAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ec2:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:key-pair/[a-zA-Z0-9_-]{1,128}$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:ec2:us-east-1:123456789012:key-pair/masterkey"
},
{
"description": "Valid - Base case using KeyPairId",
"input": "arn:aws:ec2:us-east-1:123456789012:key-pair/key-022ad73cb3dface07"
},
{
"description": "Invalid - Malformed resource collection",
"input": "arn:aws:ec2:us-east-1:123456789012:volumes/i-a2345678",
"expected": false
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:ec2:use-east-1:123456789012:volume/vol-1234567890abcdef0",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:ec2:us-east-1:1234567890123:volume/vol-1234567890abcdef0",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/keyAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

keyName

{
"type": "string",
"tests": [
{
"input": "key-ec2"
},
{
"input": "aaaaaabbbbbb"
},
{
"input": "Test-MeP12lease"
},
{
"input": "MyKEYEC2"
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/keyName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

keyPair

{
"type": "object",
"properties": {
"KeyName": {
"$ref": "#/definitions/keyName"
},
"KeyPairId": {
"type": "string"
},
"KeyFingerprint": {
"type": "string"
},
"Tags": {
"type": "array"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/keyAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/keyName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"tests": [
{
"description": "all details provided",
"input": {
"KeyName": "tesitng-keypair",
"turbot": {
"title": "test01",
"aws": {
"AccountId": 123456789012,
"RegionName": "us-east-1"
}
},
"title": "testing"
}
},
{
"description": "additional property provided",
"input": {
"KeyName": "tesitng-keypair",
"Name": "test",
"turbot": {
"title": "test01",
"aws": {
"AccountId": 123456789012,
"RegionName": "us-east-1"
}
}
}
},
{
"description": "invalid - missing key name",
"input": {
"turbot": {
"title": "test01",
"aws": {
"AccountId": 123456789012,
"RegionName": "us-east-1"
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/keyPair",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchConfiguration

{
"type": "object",
"properties": {
"LaunchConfigurationName": {
"$ref": "#/definitions/launchConfigurationName"
},
"LaunchConfigurationARN": {
"$ref": "#/definitions/launchConfigurationAka"
},
"ImageId": {
"$ref": "#/definitions/imageId"
},
"KeyName": {
"$ref": "#/definitions/keyName"
},
"SecurityGroups": {
"type": "array"
},
"ClassicLinkVPCId": {
"type": "string"
},
"ClassicLinkVPCSecurityGroups": {
"type": "array"
},
"UserData": {
"type": "string"
},
"InstanceType": {
"$ref": "#/definitions/instanceType"
},
"BlockDeviceMappings": {
"type": "array",
"items": {
"$ref": "#/definitions/instanceBlockDeviceMapping"
}
},
"KernelId": {
"type": "string"
},
"RamdiskId": {
"type": "string"
},
"CreatedTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"EbsOptimized": {
"type": "boolean"
},
"AssociatePublicIpAddress": {
"type": "boolean"
},
"InstanceMonitoring": {
"type": "object"
},
"SpotPrice": {
"type": "string"
},
"IamInstanceProfile": {
"type": "string"
},
"PlacementTenancy": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/launchConfigurationAka"
}
},
"title": {
"$ref": "#/definitions/launchConfigurationName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"LaunchConfigurationName": "test01",
"turbot": {
"akas": [
"arn:aws:autoscaling:us-west-2:492552618977:launchConfiguration:55770a63-460c-4459-a94c-f3d7c770a40b:launchConfigurationName/test01"
],
"title": "test01",
"custom": {
"aws": {
"accountId": 492552618977,
"regionName": "us-west-2",
"partition": "aws"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchConfiguration",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchConfigurationAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:autoscaling:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:launchConfiguration:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}:launchConfigurationName/.{1,1600}$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:autoscaling:us-west-2:492552618977:launchConfiguration:55770a63-460c-4459-a94c-f3d7c770a40b:launchConfigurationName/test01"
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:autoscaling:us76-wessasat-098782:492552618977:launchConfiguration:55770a63-460c-4459-a94c-f3d7c770a40b:launchConfigurationName/test01",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:autoscaling:us-west-2:492552611231343128977:launchConfiguration:55770a63-460c-4459-a94c-f3d7c770a40b:launchConfigurationName/test01",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchConfigurationAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchConfigurationName

{
"type": "string",
"minLength": 1,
"maxLength": 1600,
"tests": [
{
"input": "test01"
},
{
"description": "Invalid - Should not be empty",
"input": "",
"expected": false
},
{
"description": "Invalid - Name cannot be an array",
"input": [
"test01"
],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchConfigurationName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchTemplate

{
"type": "object",
"properties": {
"LaunchTemplateId": {
"$ref": "#/definitions/launchTemplateId"
},
"LaunchTemplateName": {
"$ref": "#/definitions/launchTemplateName"
},
"CreateTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"CreatedBy": {
"type": "string"
},
"DefaultVersionNumber": {
"type": "integer"
},
"LatestVersionNumber": {
"type": "integer"
},
"Tags": {
"$ref": "#/definitions/tagList"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/launchTemplateAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/launchTemplateName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"turbot": {
"akas": [
"arn:aws:ec2:us-east-1:123456789012:launch-template/lt-0c45b5e061ec98456"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "DBServersTemplate",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
},
"LaunchTemplateId": "lt-0c45b5e061ec98456",
"LaunchTemplateName": "DBServersTemplate",
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "turbot"
}
]
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchTemplate",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchTemplateAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ec2:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:launch-template/lt-[0-9a-z]{17}$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:ec2:us-east-1:123456789012:launch-template/lt-0c45b5e061ec98456"
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:ec2:uasds-e1323sadcast-1:123456789012:launch-template/lt-0c45b5e061ec98456",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:ec2:us-east-1:123456asd123123789012:launch-template/lt-0c45b5e061ec98456",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchTemplateAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchTemplateIamInstanceProfileSpecification

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

launchTemplateId

{
"type": "string",
"pattern": "^lt-[0-9a-f]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"input": "lt-0e06d290751193123"
},
{
"input": "lt-11111111"
},
{
"description": "invalid - must be lowercase",
"input": "lt-ABCDEFGH",
"expected": false
},
{
"description": "invalid - should always start with lt",
"input": "id-0e06d290751193123",
"expected": false
},
{
"description": "invalid - too long",
"input": "lt-0e06d2907511931234",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchTemplateId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchTemplateName

{
"type": "string",
"pattern": "^[a-zA-Z0-9\\(\\)\\.-/_]+$",
"minLength": 3,
"maxLength": 128,
"tests": [
{
"input": "testingtemplate2"
},
{
"input": "(Launch_Temp/late.0)"
},
{
"description": "invalid - too short",
"input": "aa",
"expected": false
},
{
"description": "invalid - too long",
"input": "a12345678901234567890123456789012345678901234567890123456781234567890123456789012345678901234567890123456789012345678901234567890",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchTemplateName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchTemplateVersion

{
"type": "object",
"properties": {
"LaunchTemplateId": {
"$ref": "#/definitions/launchTemplateId"
},
"LaunchTemplateName": {
"$ref": "#/definitions/launchTemplateName"
},
"VersionNumber": {
"$ref": "#/definitions/versionNumber"
},
"VersionDescription": {
"type": "string",
"maxLength": 255
},
"CreateTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"CreatedBy": {
"type": "string"
},
"DefaultVersion": {
"type": "boolean"
},
"LaunchTemplateData": {
"$ref": "#/definitions/responseLaunchTemplateData"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/launchTemplateVersionAka"
}
},
"title": {
"$ref": "#/definitions/versionNumber"
},
"custom": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"VersionNumber": 1,
"turbot": {
"akas": [
"arn:aws:ec2:us-east-1:123456789012:launch-template/lt-0c45b5e061ec98456:launch-template-version/1"
],
"title": 1,
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchTemplateVersion",
"modUri": "tmod:@turbot/aws-ec2"
}
}

launchTemplateVersionAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ec2:[a-z]{2}(gov)?-[a-z]+-[0-9]:[0-9]{12}:launch-template/lt-[0-9a-z]{17}:launch-template-version/[0-9]+$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws:ec2:us-east-1:123456789012:launch-template/lt-0c45b5e061ec98456:launch-template-version/1"
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:ec2:us-efqopeouigewuqhowu123ast-1:123456789012:launch-template/lt-0c45b5e061ec98456:launch-template-version/1",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:ec2:us-east-1:1234567890123143da12:launch-template/lt-0c45b5e061ec98456:launch-template-version/1",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/launchTemplateVersionAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

lBCookieStickinessPolicies

{
"type": "object",
"properties": {
"PolicyName": {
"type": "string"
},
"CookieExpirationPeriod": {
"type": "integer"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/lBCookieStickinessPolicies",
"modUri": "tmod:@turbot/aws-ec2"
}
}

licenseConfiguration

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

listener

{
"type": "object",
"properties": {
"InstancePort": {
"$ref": "#/definitions/port"
},
"LoadBalancerPort": {
"$ref": "#/definitions/port"
},
"Protocol": {
"$ref": "#/definitions/protocol"
},
"InstanceProtocol": {
"$ref": "#/definitions/protocol"
},
"SSLCertificateId": {
"$ref": "#/definitions/certificateArn"
}
},
"tests": [
{
"description": "all properties given",
"input": {
"InstancePort": 80,
"LoadBalancerPort": 80,
"Protocol": "HTTP",
"InstanceProtocol": "HTTP"
}
},
{
"description": "all properties given",
"input": {
"InstancePort": 443,
"LoadBalancerPort": 443,
"Protocol": "HTTPS",
"InstanceProtocol": "HTTPS",
"SSLCertificateId": "arn:aws:iam::123456789012:server-certificate/my-server-cert"
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/listener",
"modUri": "tmod:@turbot/aws-ec2"
}
}

ListenerArn

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:listener/[a-z]{3}/[a-zA-Z0-9-]{1,32}/[0-9a-f]{16}/[a-f0-9]{16}$",
"tests": [
{
"input": "arn:aws:elasticloadbalancing:us-east-2:986325076436:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c"
},
{
"input": "arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c"
},
{
"description": "Invalid - account id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c",
"expected": false
},
{
"description": "Invalid - region",
"input": "arn:aws:elasticloadbalancing:usa-west-2:12345789101:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c",
"expected": false
},
{
"description": "Invalid - target group id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/ListenerArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

listenerArn

{
"type": "string",
"pattern": "arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:listener/[a-z]{3}/[a-zA-Z0-9-]{1,32}/[0-9a-f]{16}/[a-f0-9]{16}$",
"tests": [
{
"input": "arn:aws:elasticloadbalancing:us-east-2:986325076436:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c"
},
{
"input": "arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c"
},
{
"description": "Invalid - account id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c",
"expected": false
},
{
"description": "Invalid - region",
"input": "arn:aws:elasticloadbalancing:usa-west-2:12345789101:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c",
"expected": false
},
{
"description": "Invalid - target group id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/listenerArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

listenerDescription

{
"type": "object",
"properties": {
"Listener": {
"$ref": "#/definitions/listener"
},
"PolicyNames": {
"type": "array",
"items": {
"$ref": "#/definitions/policyName"
}
}
},
"tests": [
{
"input": {
"Listener": {
"InstancePort": 80,
"LoadBalancerPort": 80,
"Protocol": "HTTP",
"InstanceProtocol": "HTTP"
},
"PolicyNames": [
"hi",
"hello"
]
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/listenerDescription",
"modUri": "tmod:@turbot/aws-ec2"
}
}

listenerDescriptions

{
"type": "array",
"items": {
"$ref": "#/definitions/listenerDescription"
},
"tests": [
{
"description": "base case",
"input": [
{
"Listener": {
"InstancePort": 80,
"LoadBalancerPort": 80,
"Protocol": "HTTP",
"InstanceProtocol": "HTTP"
},
"PolicyNames": [
"hi",
"hello"
]
},
{
"Listener": {
"InstancePort": 443,
"LoadBalancerPort": 443,
"Protocol": "HTTPS",
"InstanceProtocol": "HTTPS"
},
"PolicyNames": [
"SSL",
"SecurePolicy"
]
}
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/listenerDescriptions",
"modUri": "tmod:@turbot/aws-ec2"
}
}

listenerRule

{
"type": "object",
"properties": {
"RuleArn": {
"$ref": "#/definitions/listenerRuleArn"
},
"ListenerArn": {
"$ref": "#/definitions/listenerArn"
},
"Priority": {
"type": "string"
},
"Conditions": {
"type": "array"
},
"Actions": {
"type": "array"
},
"IsDefault": {
"type": "boolean"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/listenerRuleArn"
}
},
"title": {
"$ref": "#/definitions/listenerRuleArn"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties given",
"input": {
"turbot": {
"akas": [
"arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee"
],
"title": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/listenerRule",
"modUri": "tmod:@turbot/aws-ec2"
}
}

listenerRuleArn

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:listener-rule/[a-z]{3}/[a-zA-Z0-9-]{1,32}/[0-9a-f]{16}/[a-f0-9]{16}/[a-f0-9]{16}$",
"tests": [
{
"input": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee"
},
{
"description": "Invalid - account id missing",
"input": "arn:aws:elasticloadbalancing:us-west-2::listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/listenerRuleArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadBalancerAddress

{
"type": "array",
"items": [
{
"$ref": "#/definitions/allocationId"
},
{
"$ref": "#/definitions/ipAddress"
}
],
"tests": [
{
"input": [
"1.1.1.1"
]
},
{
"description": "invalid - not array",
"input": "1.1.1",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/loadBalancerAddress",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadBalancerArn

{
"anyOf": [
{
"$ref": "#/definitions/networkLoadBalancingArn"
},
{
"$ref": "#/definitions/applicationLoadBalancingArn"
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/loadBalancerArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadBalancerArns

{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/networkLoadBalancingArn"
},
{
"$ref": "#/definitions/applicationLoadBalancingArn"
}
]
},
"tests": [
{
"input": [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/my-load-balancer/50dc6c495c0c9188"
]
},
{
"description": "invalid not array",
"input": 5,
"expected": false
},
{
"description": "invalid ARN",
"input": [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/50dc6c495c0c9188"
],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/loadBalancerArns",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadBalancerAttributes

{
"type": "array",
"items": {
"$ref": "#/definitions/attributes"
},
"properties": {
"CrossZoneLoadBalancing": {
"$ref": "#/definitions/crossZoneLoadBalancing"
},
"AccessLog": {
"type": "object"
},
"ConnectionDraining": {
"type": "object"
},
"ConnectionSettings": {
"type": "object"
},
"AdditionalAttributes": {
"type": "array",
"items": {
"$ref": "#/definitions/additionalAttributes"
}
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/loadBalancerAttributes",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadBalancerCode

{
"type": "string",
"enum": [
"active",
"provisioning",
"active_impaired",
"failed"
],
"tests": [
{
"input": "active"
},
{
"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/loadBalancerCode",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadbalancerId

{
"type": "string",
"pattern": "^[0-9a-z]{16}$",
"tests": [
{
"input": "50dc6c495c0c9188"
},
{
"description": "Invalid - No special character allowed",
"input": "50dc6c495c0c918_",
"expected": false
},
{
"description": "Invalid - Id is too long",
"input": "jhsdkhfe386842kdkey24823990fkdjnj439u7r3",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/loadbalancerId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadBalancerListener

{
"type": "object",
"properties": {
"DefaultActions": {
"type": "array"
},
"Protocol": {
"type": "string"
},
"Port": {
"$ref": "#/definitions/port"
},
"Certificates": {
"type": "array"
},
"ListenerArn": {
"$ref": "#/definitions/ListenerArn"
},
"LoadBalancerArn": {
"$ref": "#/definitions/loadBalancerArn"
},
"SslPolicy": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/ListenerArn"
}
},
"title": {
"$ref": "#/definitions/ListenerArn"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties given",
"input": {
"Protocol": "HTTP",
"DefaultActions": [
{
"ForwardConfig": {
"TargetGroupStickinessConfig": {
"Enabled": false
},
"TargetGroups": [
{
"TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-2:986325076436:targetgroup/abc-tg/d61098fb74677883",
"Weight": 1
}
]
},
"TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-2:986325076436:targetgroup/abc-tg/d61098fb74677883",
"Type": "forward"
}
],
"LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-2:986325076436:loadbalancer/app/turbot-test-application-LB-IF/05a33d85c8a8db8e",
"Port": 80,
"ListenerArn": "arn:aws:elasticloadbalancing:us-east-2:986325076436:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c",
"turbot": {
"akas": [
"arn:aws:elasticloadbalancing:us-east-2:986325076436:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c"
],
"title": "arn:aws:elasticloadbalancing:us-east-2:986325076436:listener/app/turbot-test-application-LB-IF/05a33d85c8a8db8e/be349e217c6f0a3c",
"custom": {
"aws": {
"accountId": 986325076436,
"regionName": "us-east-2"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/loadBalancerListener",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadBalancerName

{
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[-a-zA-Z0-9]{0,30}[a-zA-Z0-9])?$",
"tests": [
{
"input": "aaabbb111"
},
{
"input": "aaaaaabbbbbb"
},
{
"input": "Test-MeP12lease"
},
{
"description": "max length",
"input": "12345678123456781234567812345678"
},
{
"description": "route53 example",
"input": "Z2YQB5RD63NC85"
},
{
"description": "cloudfront distribution example",
"input": "Z2FDTNDATAQYW2"
},
{
"description": "invalid char",
"input": "Test.please",
"expected": false
},
{
"description": "cannot start with hyphens",
"input": "-aaaaaa-111111",
"expected": false
},
{
"description": "cannot contain underscore",
"input": "aaaaaa_bbbbbb",
"expected": false
},
{
"description": "invalid - too long",
"input": "123456781234567812345678123456781",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/loadBalancerName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

loadBalanceState

{
"type": "object",
"properties": {
"Code": {
"$ref": "#/definitions/loadBalancerCode"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/loadBalanceState",
"modUri": "tmod:@turbot/aws-ec2"
}
}

matcher

{
"type": "object",
"properties": {
"HttpCode": {
"$ref": "#/definitions/httpCode"
}
},
"required": [
"HttpCode"
],
"tests": [
{
"description": "all required properties given",
"input": {
"HttpCode": 205
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/matcher",
"modUri": "tmod:@turbot/aws-ec2"
}
}

networkInterface

{
"type": "object",
"properties": {
"NetworkInterfaceId": {
"$ref": "#/definitions/networkInterfaceId"
},
"TagSet": {
"$ref": "#/definitions/tagList"
},
"Attachment": {
"$ref": "#/definitions/attachmentStatus"
},
"Association": {
"$ref": "#/definitions/association"
},
"AvailabilityZone": {
"type": "string"
},
"Description": {
"type": "string"
},
"Groups": {
"$ref": "#/definitions/groupIdentifierList"
},
"InterfaceType": {
"$ref": "#/definitions/networkInterfaceType"
},
"Ipv6Addresses": {
"$ref": "#/definitions/networkInterfaceIpv6AddressesList"
},
"MacAddress": {
"type": "string"
},
"OutpostArn": {
"type": "string"
},
"OwnerId": {
"type": "string"
},
"PrivateDnsName": {
"type": "string"
},
"PrivateIpAddress": {
"type": "string"
},
"RequesterId": {
"type": "string"
},
"RequesterManaged": {
"type": "boolean"
},
"SourceDestCheck": {
"type": "boolean"
},
"Status": {
"$ref": "#/definitions/eniStatus"
},
"SubnetId": {
"type": "string"
},
"VpcId": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/networkInterfaceAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/networkInterfaceId"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"NetworkInterfaceId": "eni-068f6677372d4865b",
"TagSet": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
],
"turbot": {
"akas": [
"arn:aws:ec2:us-east-1:123456789012:network-interface/eni-068f6677372d4865b"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "eni-068f6677372d4865b",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/networkInterface",
"modUri": "tmod:@turbot/aws-ec2"
}
}

networkInterfaceAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ec2:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:network-interface/eni-([0-9a-f]{8}|[0-9a-f]{9}|[0-9a-f]{17})$",
"tests": [
{
"description": "Valid - Base case",
"input": "arn:aws-us-gov:ec2:us-gov-east-1:123456789012:network-interface/eni-068f6677372d4865b"
},
{
"description": "Valid - US Gov case",
"input": "arn:aws:ec2:us-east-1:123456789012:network-interface/eni-068f6677372d4865b"
},
{
"description": "Invalid - Malformed region name",
"input": "arn:aws:ec2:us-eaasd12312st-1:123456789012:network-interface/eni-068f6677372d4865b",
"expected": false
},
{
"description": "Invalid - Malformed account ID",
"input": "arn:aws:ec2:us-east-1:1234567asd12389012:network-interface/eni-068f6677372d4865b",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/networkInterfaceAka",
"modUri": "tmod:@turbot/aws-ec2"
}
}

networkInterfaceId

{
"type": "string",
"pattern": "^eni-([0-9a-f]{8}|[0-9a-f]{9}|[0-9a-f]{17})$",
"tests": [
{
"input": "eni-068f66773"
},
{
"input": "eni-068f6677"
},
{
"input": "eni-068f6677372123312"
},
{
"description": "invalid - characters allowed from a to f only",
"input": "eni-068f6677372d4865z",
"expected": false
},
{
"description": "invalid - should always start with eni",
"input": "ei-068f6677372d4865b",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/networkInterfaceId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

networkInterfaceIpv6Address

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

networkInterfaceIpv6AddressesList

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

networkInterfaceStatus

{
"type": "string",
"enum": [
"attaching",
"attached",
"detaching",
"detached"
],
"tests": [
{
"description": "valid - correct status type",
"input": "attaching"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/networkInterfaceStatus",
"modUri": "tmod:@turbot/aws-ec2"
}
}

networkInterfaceType

{
"type": "string",
"enum": [
"efa",
"interface"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/networkInterfaceType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

networkListenerArn

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

networkLoadBalancer

{
"type": "object",
"properties": {
"AvailabilityZones": {
"$ref": "#/definitions/availabilityZones"
},
"CanonicalHostedZoneId": {
"$ref": "#/definitions/canonicalHostedZoneId"
},
"DNSName": {
"$ref": "#/definitions/dnsName"
},
"IpAddressType": {
"$ref": "#/definitions/ipAddressType"
},
"LoadBalancerArn": {
"$ref": "#/definitions/networkLoadBalancingArn"
},
"LoadBalancerName": {
"$ref": "#/definitions/loadBalancerName"
},
"VpcId": {
"$ref": "#/definitions/vpcId"
},
"CreatedTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"Scheme": {
"$ref": "#/definitions/scheme"
},
"SecurityGroups": {
"$ref": "#/definitions/securityGroups"
},
"Type": {
"$ref": "#/definitions/type"
},
"Tags": {
"$ref": "aws#/definitions/tagList"
},
"State": {
"$ref": "#/definitions/networkLoadbalancerStatus"
},
"Attributes": {
"$ref": "#/definitions/loadBalancerAttributes"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/networkLoadBalancingArn"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/loadBalancerName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"turbot": {
"akas": [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/my-load-balancer/50dc6c495c0c9188"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "foo",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
},
"LoadBalancerName": "foo",
"LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/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": {
"uri": "tmod:@turbot/aws-ec2#/definitions/networkLoadBalancer",
"modUri": "tmod:@turbot/aws-ec2"
}
}

networkLoadbalancerStatus

{
"type": "object",
"properties": {
"Code": {
"$ref": "#/definitions/ec2NetworkLoadbalancerStatus"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/networkLoadbalancerStatus",
"modUri": "tmod:@turbot/aws-ec2"
}
}

networkLoadBalancingArn

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:loadbalancer/net/[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/net/my-load-balancer/50dc6c495c0c9188"
},
{
"input": "arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:loadbalancer/net/my-load-balancer/50dc6c495c0c9188"
},
{
"description": "invalid - account id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:loadbalancer/net/my-load-balancer/50dc6c495c0c9188",
"expected": false
},
{
"description": "invalid - region",
"input": "arn:aws:elasticloadbalancing:usa-west-2:12345789101:loadbalancer/net/my-load-balancer/50dc6c495c0c9188",
"expected": false
},
{
"description": "invalid - load balancer id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:loadbalancer/net/my-load-balancer/50dc6c495c0c9188",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/networkLoadBalancingArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

policies

{
"type": "object",
"properties": {
"AppCookieStickinessPolicies": {
"$ref": "#/definitions/appCookieStickinessPolicies"
},
"LBCookieStickinessPolicies": {
"$ref": "#/definitions/lBCookieStickinessPolicies"
},
"OtherPolicies": {
"$ref": "#/definitions/policyNames"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/policies",
"modUri": "tmod:@turbot/aws-ec2"
}
}

policyName

{
"type": "string",
"pattern": "^[0-9a-zA-Z-]+$",
"tests": [
{
"input": "ELBSecurityPolicy-2015-03"
},
{
"description": "invalid - character not in pattern",
"input": "55!%",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/policyName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

policyNames

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

port

{
"type": "integer",
"minimum": 1,
"maximum": 65535,
"tests": [
{
"input": 9999
},
{
"input": 11111
},
{
"description": "minimum",
"input": 1
},
{
"description": "maximum",
"input": 65535
},
{
"description": "invalid - decimal value provided",
"input": 4.5,
"expected": false
},
{
"description": "invalid - string type provided",
"input": "three",
"expected": false
},
{
"description": "invalid - less than minimum",
"input": 0,
"expected": false
},
{
"description": "invalid - greater than maximum",
"input": 65536,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/port",
"modUri": "tmod:@turbot/aws-ec2"
}
}

protocol

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

Protocol

{
"type": "string",
"enum": [
"HTTP",
"HTTPS",
"TCP",
"SSL"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/Protocol",
"modUri": "tmod:@turbot/aws-ec2"
}
}

reason

{
"type": "string",
"tests": [
{
"input": "hgvhjvjg"
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/reason",
"modUri": "tmod:@turbot/aws-ec2"
}
}

regionName

{
"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-gov-west-1",
"us-west-1",
"us-west-2"
],
"tests": [
{
"input": "us-east-1"
},
{
"description": "invalid - usea1",
"input": "usea1",
"expected": false
},
{
"description": "invalid - au-north-1",
"input": "au-north-1",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/regionName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

responseLaunchTemplateData

{
"type": "object",
"properties": {
"KernelId": {
"type": "string"
},
"EbsOptimized": {
"type": "boolean"
},
"IamInstanceProfile": {
"$ref": "#/definitions/launchTemplateIamInstanceProfileSpecification"
},
"BlockDeviceMappings": {
"type": "array"
},
"NetworkInterfaces": {
"type": "array"
},
"ImageId": {
"type": "string"
},
"InstanceType": {
"type": "string"
},
"KeyName": {
"type": "string"
},
"Monitoring": {
"type": "object"
},
"Placement": {
"type": "object"
},
"RamDiskId": {
"type": "string"
},
"DisableApiTermination": {
"type": "boolean"
},
"InstanceInitiatedShutdownBehavior": {
"type": "object"
},
"UserData": {
"type": "string"
},
"TagSpecifications": {
"type": "array"
},
"ElasticGpuSpecifications": {
"type": "array"
},
"ElasticInferenceAccelerators": {
"type": "array"
},
"SecurityGroupIds": {
"type": "array"
},
"SecurityGroups": {
"type": "array"
},
"InstanceMarketOptions": {
"type": "object"
},
"CreditSpecification": {
"type": "object"
},
"CpuOptions": {
"type": "object"
},
"CapacityReservationSpecification": {
"type": "object"
},
"LicenseSpecifications": {
"type": "array"
},
"HibernationOptions": {
"type": "object"
},
"MetadataOptions": {
"type": "object"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/responseLaunchTemplateData",
"modUri": "tmod:@turbot/aws-ec2"
}
}

rootDeviceType

{
"type": "string",
"enum": [
"ebs",
"instance-store"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/rootDeviceType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

scheme

{
"type": "string",
"enum": [
"internet-facing",
"internal"
],
"tests": [
{
"input": "internal"
},
{
"input": "internet-facing"
},
{
"description": "invalid - uppercase value",
"input": "INTERNAL",
"expected": false
},
{
"description": "invalid - not listed in the options",
"input": "foo",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/scheme",
"modUri": "tmod:@turbot/aws-ec2"
}
}

securityGroup

{
"type": "string",
"pattern": "^sg-[0-9a-f]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"input": "sg-a61988c3"
},
{
"input": "sg-a1199fd4"
},
{
"description": "invalid - uppercase value",
"input": "sg-A1199FD4",
"expected": false
},
{
"description": "invalid - missing sg",
"input": "a1199fd4",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/securityGroup",
"modUri": "tmod:@turbot/aws-ec2"
}
}

securityGroups

{
"type": "array",
"items": {
"$ref": "#/definitions/securityGroup"
},
"tests": [
{
"input": [
"sg-a61988c3"
]
},
{
"description": "invalid - string passed",
"input": "test",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/securityGroups",
"modUri": "tmod:@turbot/aws-ec2"
}
}

sgIdentifierList

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

snapshot

{
"type": "object",
"properties": {
"DataEncryptionKeyId": {
"type": "string"
},
"Description": {
"type": "string"
},
"Encrypted": {
"type": "boolean"
},
"KmsKeyId": {
"type": "string"
},
"Progress": {
"type": "string"
},
"SnapshotId": {
"$ref": "#/definitions/snapshotId"
},
"StartTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"OwnerId": {
"$ref": "aws#/definitions/accountId"
},
"Tags": {
"$ref": "#/definitions/tagList"
},
"State": {
"$ref": "#/definitions/snapshotStatus"
},
"StateMessage": {
"type": "string"
},
"VolumeId": {
"type": "string"
},
"VolumeSize": {
"type": "integer"
},
"OwnerAlias": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/snapshotAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/snapshotId"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"SnapshotId": "snap-1234567890abcdef0",
"OwnerId": 123456789012,
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
],
"turbot": {
"akas": [
"arn:aws:ec2:us-east-1:123456789012:snapshot/snap-a2345678"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "snap-1234567890abcdef0",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1",
"partition": "aws"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/snapshot",
"modUri": "tmod:@turbot/aws-ec2"
}
}

snapshotAka

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

snapshotId

{
"type": "string",
"pattern": "^snap-[0-9a-f]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"input": "snap-1234567890abcdef0"
},
{
"input": "snap-87e12c93"
},
{
"description": "invalid - pattern mismatch",
"input": "a1234567812345678123456781234567",
"expected": false
},
{
"description": "invalid - cannot start with hyphens",
"input": "-aaaaaa111111",
"expected": false
},
{
"description": "invalid - cannot contain hyphens",
"input": "aaaaaa-111111",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/snapshotId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

snapshotServiceNow

{
"defaultColumns": {
"account_id": {
"column": "enabled",
"path": "metadata.aws.accountId",
"label": "Account ID"
},
"arn": {
"column": "enabled",
"path": "turbot.akas[0]",
"label": "ARN"
},
"description": {
"column": "enabled",
"label": "Description"
},
"encrypted": {
"column": "enabled",
"label": "Encrypted",
"type": "boolean"
},
"kms_key_id": {
"column": "enabled",
"label": "Kms Key ID"
},
"owner_alias": {
"column": "enabled",
"label": "Owner Alias"
},
"owner_id": {
"column": "enabled",
"label": "Owner ID"
},
"progress": {
"column": "enabled",
"label": "Progress"
},
"region": {
"column": "enabled",
"label": "Region",
"path": "metadata.aws.regionName"
},
"snapshot_id": {
"column": "enabled",
"label": "Snapshot ID"
},
"start_time": {
"column": "enabled",
"label": "Start Time"
},
"state": {
"column": "enabled",
"label": "State"
},
"tags": {
"column": "enabled",
"label": "Tags",
"type": "string",
"size": 1000
},
"volume_id": {
"column": "enabled",
"label": "Volume ID"
},
"volume_size": {
"column": "enabled",
"label": "Volume Size"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/snapshotServiceNow",
"modUri": "tmod:@turbot/aws-ec2"
}
}

snapshotStatus

{
"type": "string",
"enum": [
"pending",
"completed",
"error"
],
"tests": [
{
"input": "pending"
},
{
"input": "error"
},
{
"description": "invalid - not listed in options",
"input": "Reactive",
"expected": false
},
{
"description": "invalid - null value",
"input": null,
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/snapshotStatus",
"modUri": "tmod:@turbot/aws-ec2"
}
}

sourceSecurityGroup

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

sslPolicy

{
"type": "string",
"pattern": "^[a-zA-Z0-9-]+$",
"tests": [
{
"input": "ELBSecurityPolicy-2015-05"
},
{
"description": "invalid - at symbol is not in pattern",
"input": "301@",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/sslPolicy",
"modUri": "tmod:@turbot/aws-ec2"
}
}

state

{
"type": "object",
"properties": {
"Code": {
"$ref": "#/definitions/code"
},
"Reason": {
"$ref": "#/definitions/reason"
}
},
"tests": [
{
"description": "all properties given",
"input": {
"Code": "active",
"Reason": "adfgggh"
}
},
{
"description": "one property given",
"input": {
"Code": "active"
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/state",
"modUri": "tmod:@turbot/aws-ec2"
}
}

stateReason

{
"type": "object",
"properties": {
"Code": {
"type": "string"
},
"Message": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/stateReason",
"modUri": "tmod:@turbot/aws-ec2"
}
}

subnet

{
"type": "string",
"pattern": "^subnet-[0-9a-f]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"input": "subnet-15aaab61"
},
{
"input": "subnet-aaaaaaaa"
},
{
"description": "invalid - non hex",
"input": "subnet-aaaaaaaaaaaaaaaaz",
"expected": false
},
{
"description": "invalid - too short",
"input": "subnet-a234567890123456",
"expected": false
},
{
"description": "invalid - too long",
"input": "subnet-a23456789012345678",
"expected": false
},
{
"description": "invalid - must be lowercase",
"input": "subnet-ABCD1234",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/subnet",
"modUri": "tmod:@turbot/aws-ec2"
}
}

subnets

{
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/subnet"
},
"tests": [
{
"input": [
"subnet-15aaab61",
"subnet-15aaab61"
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/subnets",
"modUri": "tmod:@turbot/aws-ec2"
}
}

tag

{
"type": "object",
"properties": {
"Key": {
"$ref": "#/definitions/tagKey"
},
"Value": {
"$ref": "#/definitions/tagValue"
}
},
"required": [
"Key",
"Value"
],
"tests": [
{
"description": "valid - base case",
"input": {
"Key": "foo",
"Value": "bar"
}
},
{
"description": "invalid - empty key",
"input": {
"Key": "",
"Value": "bar"
},
"expected": false
},
{
"description": "invalid - no key",
"input": {
"Value": "bar"
},
"expected": false
},
{
"description": "invalid - no value",
"input": {
"Key": "foo"
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/tag",
"modUri": "tmod:@turbot/aws-ec2"
}
}

tagKey

{
"allOf": [
{
"$ref": "#/definitions/tagString"
},
{
"type": "string",
"minLength": 1,
"maxLength": 127
}
],
"tests": [
{
"description": "valid - min length",
"input": "a"
},
{
"description": "valid - max length",
"input": "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 1234567"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
},
{
"description": "invalid - too long",
"input": "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 12345678",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/tagKey",
"modUri": "tmod:@turbot/aws-ec2"
}
}

tagList

{
"type": "array",
"items": {
"$ref": "#/definitions/tag"
},
"minLength": 0,
"tests": [
{
"description": "valid - empty list",
"input": []
},
{
"description": "valid - single item",
"input": [
{
"Key": "foo",
"Value": "bar"
}
]
},
{
"description": "valid - multiple items",
"input": [
{
"Key": "one",
"Value": 1
},
{
"Key": "two",
"Value": 2
},
{
"Key": "three",
"Value": 3
},
{
"Key": "four",
"Value": 4
}
]
},
{
"description": "invalid - missing value",
"input": [
{
"Key": "one"
},
{
"Key": "two",
"Value": 2
}
],
"expected": false
},
{
"description": "invalid - empty item",
"input": [
{
"Key": "one",
"Value": 1
},
null,
{
"Key": "two",
"Value": 2
}
],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/tagList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

tagsMap

{
"type": "object",
"patternProperties": {
"^.{1,127}$": {
"$ref": "#/definitions/tagValue"
}
},
"additionalProperties": false,
"tests": [
{
"description": "valid - base case",
"input": {
"foo": "bar"
}
},
{
"description": "valid - kitchen sink",
"input": {
"küßîAbc123!@#$": "küßîAbc123!@#$",
"test": ""
}
},
{
"description": "valid - key min length",
"input": {
"a": "bar"
}
},
{
"description": "invalid - empty key",
"input": {
"": "bar"
},
"expected": false
},
{
"description": "valid - key max length",
"input": {
"123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 1234567": "bar"
}
},
{
"description": "invalid - key too long",
"input": {
"123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 12345678": "bar"
},
"expected": false
},
{
"description": "valid - empty",
"input": {}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/tagsMap",
"modUri": "tmod:@turbot/aws-ec2"
}
}

tagsTemplateTag

{
"type": "object",
"patternProperties": {
"^(?!aws:).{1,127}$": {
"$ref": "#/definitions/tagValue"
}
},
"minProperties": 1,
"maxProperties": 1,
"additionalProperties": false,
"tests": [
{
"description": "valid - base case",
"input": {
"foo": "bar"
}
},
{
"description": "invalid - starts with \"aws:\"",
"input": {
"aws:test": "bar"
},
"expected": false
},
{
"description": "invalid - below min properties",
"input": {},
"expected": false
},
{
"description": "invalid - above max properties",
"input": {
"foo": "bar",
"foo1": "bar1"
},
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/tagsTemplateTag",
"modUri": "tmod:@turbot/aws-ec2"
}
}

tagsTemplateTagList

{
"type": "array",
"items": {
"$ref": "#/definitions/tagsTemplateTag"
},
"minLength": 0,
"tests": [
{
"description": "valid - empty list",
"input": []
},
{
"description": "valid - single item",
"input": [
{
"foo": "bar"
}
]
},
{
"description": "valid - multiple items",
"input": [
{
"foo": "bar"
},
{
"foo1": "bar1"
},
{
"foo2": "bar2"
}
]
},
{
"description": "invalid - empty item",
"input": [
{
"foo": "bar"
},
null,
{
"foo2": "bar2"
}
],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/tagsTemplateTagList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

tagString

{
"type": "string",
"pattern": "^.*$",
"tests": [
{
"input": "küßî"
},
{
"input": "Peter Dinklage as Tyrion Lannister"
},
{
"input": "Filip Lozić as Young Nobleman"
},
{
"input": "Abc123 !@#$%^&*()_+"
},
{
"input": "{ start: \"something\", stop: \"something else\" }"
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/tagString",
"modUri": "tmod:@turbot/aws-ec2"
}
}

tagValue

{
"allOf": [
{
"$ref": "#/definitions/tagString"
},
{
"type": "string",
"minLength": 0,
"maxLength": 255
}
],
"tests": [
{
"description": "valid - empty string",
"input": ""
},
{
"description": "valid - max length",
"input": "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 12345"
},
{
"description": "invalid - too long",
"input": "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/tagValue",
"modUri": "tmod:@turbot/aws-ec2"
}
}

Target

{
"type": "array",
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/Target",
"modUri": "tmod:@turbot/aws-ec2"
}
}

targetGroup

{
"type": "object",
"properties": {
"TargetGroupName": {
"$ref": "#/definitions/targetGroupName"
},
"TargetGroupArn": {
"$ref": "#/definitions/targetGroupArn"
},
"LoadBalancerArns": {
"$ref": "#/definitions/loadBalancerArns"
},
"Protocol": {
"$ref": "#/definitions/protocol"
},
"Port": {
"$ref": "#/definitions/port"
},
"VpcId": {
"$ref": "#/definitions/vpcId"
},
"TargetType": {
"$ref": "#/definitions/targetType"
},
"HealthyThresholdCount": {
"$ref": "#/definitions/healthyThresholdCount"
},
"Matcher": {
"$ref": "#/definitions/matcher"
},
"UnhealthyThresholdCount": {
"$ref": "#/definitions/unhealthyThresholdCount"
},
"HealthCheckPath": {
"$ref": "#/definitions/healthCheckPath"
},
"HealthCheckProtocol": {
"$ref": "#/definitions/healthCheckProtocol"
},
"HealthCheckPort": {
"$ref": "#/definitions/healthCheckPort"
},
"HealthCheckIntervalSeconds": {
"$ref": "#/definitions/healthCheckIntervalSeconds"
},
"HealthCheckTimeoutSeconds": {
"$ref": "#/definitions/healthCheckTimeoutSeconds"
},
"TargetHealthDescriptions": {
"$ref": "#/definitions/TargetHealthDescriptions"
},
"Tags": {
"$ref": "#/definitions/tagList"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/targetGroupArn"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/targetGroupName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties given",
"input": {
"turbot": {
"akas": [
"arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "foo",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
},
"TargetGroupName": "foo",
"TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/73e2d6bc24d8a067",
"LoadBalancerArns": [
"arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:loadbalancer/net/my-load-balancer/50dc6c495c0c9188",
"arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:loadbalancer/app/my-load-balancer/50dc6c495c0c9188"
],
"Protocol": "HTTP",
"Port": 80,
"VpcId": "vpc-3ac0fb5f",
"TargetType": "instance",
"HealthyThresholdCount": 5,
"Matcher": {
"HttpCode": 200
},
"UnhealthyThresholdCount": 2,
"HealthCheckPath": "/",
"HealthCheckProtocol": "HTTP",
"HealthCheckPort": "traffic-port",
"HealthCheckIntervalSeconds": 30,
"HealthCheckTimeoutSeconds": 5,
"TargetHealthDescriptions": [
{
"HealthCheckPort": "80",
"Target": {
"Id": "i-0a94d7d5d9dbd5bcf",
"Port": 80
},
"TargetHealth": {
"Description": "Target is in an Availability Zone that is not enabled for the load balancer",
"Reason": "Target.NotInUse",
"State": "unused"
}
}
],
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
]
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/targetGroup",
"modUri": "tmod:@turbot/aws-ec2"
}
}

targetGroupArn

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:elasticloadbalancing:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}:targetgroup/(((?!.*--)[a-zA-Z0-9][a-zA-Z0-9-]{1,28})[a-z0-9])/[0-9a-f]{16}$",
"tests": [
{
"input": "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"
},
{
"input": "arn:aws-us-gov:elasticloadbalancing:us-gov-west-1:123456789101:targetgroup/my-targets/73e2d6bc24d8a067"
},
{
"description": "Invalid - account id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:targetgroup/my-targets/73e2d6bc24d8a067",
"expected": false
},
{
"description": "Invalid - region",
"input": "arn:aws:elasticloadbalancing:usa-west-2:12345789101:targetgroup/my-targets/73e2d6bc24d8a067",
"expected": false
},
{
"description": "Invalid - target group id",
"input": "arn:aws:elasticloadbalancing:us-west-2:12345789101:targetgroup/my-targets/73e2dzd8a067",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/targetGroupArn",
"modUri": "tmod:@turbot/aws-ec2"
}
}

targetGroupName

{
"type": "string",
"pattern": "^(((?!.*--)[a-zA-Z0-9][a-zA-Z0-9-]{1,28})[a-z0-9])$",
"tests": [
{
"input": "aaAbbb111"
},
{
"input": "11aaaabbbbb"
},
{
"input": "Test-MeP12-lease"
},
{
"description": "Invalid - TargetGroup name cannot begin or end with a dash",
"input": "-hgfdfg",
"expected": false
},
{
"description": "Invalid - TargetGroup name cannot contain double dashes",
"input": "hgf--dfg",
"expected": false
},
{
"description": "Invalid - TargetGroup name cannot be longer than 32 characters",
"input": "a12345678123456781234567812345643",
"expected": false
},
{
"description": "Invalid - TargetGroup name cannot contain characters that are not letters, or digits or the dash",
"input": "98765432rl;';lkjh",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/targetGroupName",
"modUri": "tmod:@turbot/aws-ec2"
}
}

TargetHealth

{
"type": "object",
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/TargetHealth",
"modUri": "tmod:@turbot/aws-ec2"
}
}

TargetHealthDescriptions

{
"type": "array",
"properties": {
"Target": {
"$ref": "#/definitions/Target"
},
"HealthCheckPort": {
"$ref": "#/definitions/healthCheckPort"
},
"TargetHealth": {
"$ref": "#/definitions/TargetHealth"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/TargetHealthDescriptions",
"modUri": "tmod:@turbot/aws-ec2"
}
}

targetType

{
"type": "string",
"enum": [
"instance",
"ip"
],
"tests": [
{
"input": "instance"
},
{
"input": "ip"
},
{
"description": "invalid - uppercase value",
"input": "IP",
"expected": false
},
{
"description": "invalid - not listed in the options",
"input": "foo",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/targetType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

type

{
"type": "string",
"enum": [
"application",
"network"
],
"tests": [
{
"input": "network"
},
{
"input": "application"
},
{
"description": "invalid - uppercase value",
"input": "NETWORK",
"expected": false
},
{
"description": "invalid - not listed in the options",
"input": "foo",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/type",
"modUri": "tmod:@turbot/aws-ec2"
}
}

Type

{
"type": "string",
"enum": [
"application",
"network",
"gateway"
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/Type",
"modUri": "tmod:@turbot/aws-ec2"
}
}

unhealthyThresholdCount

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

versionNumber

{
"type": "integer",
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/versionNumber",
"modUri": "tmod:@turbot/aws-ec2"
}
}

volume

{
"type": "object",
"properties": {
"AvailabilityZone": {
"type": "string"
},
"CreateTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"Encrypted": {
"type": "boolean"
},
"OutpostArn": {
"type": "string"
},
"Size": {
"type": "integer"
},
"SnapshotId": {
"type": "string"
},
"Iops": {
"type": "integer"
},
"FastRestored": {
"type": "boolean"
},
"VolumeId": {
"$ref": "#/definitions/volumeId"
},
"Tags": {
"$ref": "#/definitions/tagList"
},
"State": {
"$ref": "#/definitions/volumeStatus"
},
"VolumeType": {
"$ref": "#/definitions/volumeType"
},
"Attachments": {
"$ref": "#/definitions/volumeAttachments"
},
"KmsKeyId": {
"$ref": "aws-kms#/definitions/keyAka"
},
"KeyArn": {
"$ref": "aws-kms#/definitions/keyAka"
},
"AliasName": {
"type": "string",
"pattern": "^.{1,256}$"
},
"KeyId": {
"$ref": "aws-kms#/definitions/KeyId"
},
"AliasArn": {
"type": "string",
"pattern": "^.{20,2048}$"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/volumeAka"
}
},
"tags": {
"$ref": "aws#/definitions/tagsMap"
},
"title": {
"$ref": "#/definitions/volumeId"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "all properties given",
"input": {
"VolumeId": "vol-1234567890abcdef0",
"State": "creating",
"Tags": [
{
"Key": "Env",
"Value": "Test"
},
{
"Key": "App",
"Value": "Facebook"
}
],
"turbot": {
"akas": [
"arn:aws:ec2:us-east-1:123456789012:volume/vol-1234567890abcdef0"
],
"tags": {
"Env": "Test",
"App": "Facebook"
},
"title": "vol-1234567890abcdef0",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/volume",
"modUri": "tmod:@turbot/aws-ec2"
}
}

volumeAka

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

volumeAttachments

{
"type": "array",
"items": {
"AttachTime": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"Device": {
"type": "string",
"tests": []
},
"DeleteOnTermination": {
"type": "string",
"tests": []
},
"InstanceId": {
"$ref": "#/definitions/instanceId"
},
"State": {
"type": "string",
"tests": []
},
"VolumeId": {
"$ref": "#/definitions/volumeId"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/volumeAttachments",
"modUri": "tmod:@turbot/aws-ec2"
}
}

volumeId

{
"type": "string",
"tests": [
{
"description": "base case",
"input": "vol-1234567890abcdef0"
},
{
"description": "invalid - incorrect type",
"input": [],
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/volumeId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

volumeServiceNow

{
"defaultColumns": {
"account_id": {
"column": "enabled",
"path": "metadata.aws.accountId",
"label": "Account ID"
},
"arn": {
"column": "enabled",
"path": "turbot.akas[0]",
"label": "ARN"
},
"attachments": {
"column": "enabled",
"label": "Attachments",
"type": "string",
"size": 1000
},
"availability_zone": {
"column": "enabled",
"label": "Availability Zone"
},
"create_time": {
"column": "enabled",
"label": "Create Time"
},
"encrypted": {
"column": "enabled",
"label": "Encrypted",
"type": "boolean"
},
"iops": {
"column": "enabled",
"label": "IOPS"
},
"kms_key_id": {
"column": "enabled",
"label": "Kms Key ID"
},
"multi_attach_enabled": {
"column": "enabled",
"label": "Multi Attach Enabled",
"type": "boolean"
},
"region": {
"column": "enabled",
"path": "metadata.aws.regionName",
"label": "Region"
},
"size": {
"column": "enabled",
"label": "Size"
},
"snapshot_id": {
"column": "enabled",
"label": "Snapshot ID"
},
"state": {
"column": "enabled",
"label": "State"
},
"tags": {
"column": "enabled",
"label": "Tags",
"type": "string",
"size": 1000
},
"volume_id": {
"column": "enabled",
"label": "Volume ID"
},
"volume_type": {
"column": "enabled",
"label": "Volume Type"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/volumeServiceNow",
"modUri": "tmod:@turbot/aws-ec2"
}
}

volumeStatus

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

volumeType

{
"type": "string",
"enum": [
"gp2",
"io1",
"sc1",
"st1",
"standard"
],
"tests": [
{
"input": "gp2"
},
{
"input": "io1"
},
{
"input": "standard"
},
{
"input": "st1"
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/volumeType",
"modUri": "tmod:@turbot/aws-ec2"
}
}

volumeTypeMatcher

{
"type": "string",
"enum": [
"gp2",
"io1",
"sc1",
"st1",
"standard",
"*"
],
"tests": [
{
"input": "gp2"
},
{
"input": "io1"
},
{
"input": "standard"
},
{
"input": "st1"
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
},
{
"description": "invalid - contains hyphen",
"input": "st-1",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/volumeTypeMatcher",
"modUri": "tmod:@turbot/aws-ec2"
}
}

volumeTypeMatcherList

{
"type": "array",
"items": {
"$ref": "#/definitions/volumeTypeMatcher"
},
"example": [
[
"gp2",
"standard"
],
[
"io1",
"st1"
]
],
"default": [
"*"
],
"tests": [
{
"input": [
"gp2"
]
},
{
"input": [
"io1"
]
},
{
"input": [
"standard"
]
},
{
"input": [
"st1"
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/volumeTypeMatcherList",
"modUri": "tmod:@turbot/aws-ec2"
}
}

vpcId

{
"type": "string",
"pattern": "^vpc-[0-9a-f]{8}(?:[0-9a-f]{9})?$",
"tests": [
{
"input": "vpc-11111111"
},
{
"input": "vpc-aaaaaaaa"
},
{
"input": "vpc-a2345678"
},
{
"input": "vpc-a2345678901234567"
},
{
"description": "fixed length",
"input": "vpc-a2345678901234567"
},
{
"input": "invalid - foo$bar",
"expected": false
},
{
"description": "invalid - must be lowercase",
"input": "vpc-ABCD1234",
"expected": false
},
{
"description": "invalid - too long",
"input": "vpc-a23456789012345678",
"expected": false
},
{
"description": "invalid - too short",
"input": "vpc-a234567890123456",
"expected": false
},
{
"description": "invalid - non hex",
"input": "vpc-aaaaaaaaaaaaaaaaz",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/vpcId",
"modUri": "tmod:@turbot/aws-ec2"
}
}

zoneName

{
"type": "string",
"pattern": "^[a-z]{2}(-gov)?-[a-z]+-[0-9a-z]{2}$",
"tests": [
{
"input": "us-east-1a"
},
{
"input": "us-gov-west-1a"
},
{
"description": "invalid - uppercase value",
"input": "US-EAST-1A",
"expected": false
},
{
"description": "invalid - region",
"input": "usa-east-1a",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ec2#/definitions/zoneName",
"modUri": "tmod:@turbot/aws-ec2"
}
}