[
  {
    "op": "add",
    "path": "/ValueTypes",
    "value": {
      "AvailabilityZone": {
        "GetAtt": {
          "AWS::EC2::Instance": "AvailabilityZone",
          "AWS::EC2::Subnet": "AvailabilityZone",
          "AWS::OpsWorks::Instance": "AvailabilityZone"
        },
        "Ref": {
          "Parameters": [
            "String",
            "AvailabilityZone"
          ]
        }
      },
      "AvailabilityZones": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "Strings",
            "AvailabilityZones"
          ]
        }
      },
      "CertificateValidationMethod": {
        "AllowedValues": [
          "DNS",
          "EMAIL"
        ]
      },
      "CidrIp": {
        "AllowedPattern": "x.x.x.x/y",
        "AllowedPatternRegex": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/([0-9]|[1-2][0-9]|3[0-2]))$"
      },
      "CustomerGatewayType": {
        "AllowedValues": [
          "ipsec.1"
        ]
      },
      "DAXInstanceType": {
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "DHCPOptionsNetbiosNodeType": {
        "AllowedValues": [
          "1",
          "2",
          "4",
          "8"
        ]
      },
      "DLMPolicyResourceType": {
        "AllowedValues": [
          "INSTANCE",
          "VOLUME"
        ]
      },
      "DmsEndpointEngineName": {
        "AllowedValues": [
          "aurora-postgresql",
          "aurora",
          "azuredb",
          "db2",
          "documentdb",
          "dynamodb",
          "elasticsearch",
          "kafka",
          "kinesis",
          "mariadb",
          "mongodb",
          "mysql",
          "oracle",
          "postgres",
          "redshift",
          "s3",
          "sqlserver",
          "sybase"
        ]
      },
      "DmsEndpointSslMode": {
        "AllowedValues": [
          "none",
          "require",
          "verify-ca",
          "verify-full"
        ]
      },
      "DmsEndpointType": {
        "AllowedValues": [
          "source",
          "target"
        ]
      },
      "DocumentDBEngineVersion": {
        "AllowedValues": [
          "3.6.0"
        ]
      },
      "DocumentDBInstanceClass": {
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "EC2CapacityReservationEndDateType": {
        "AllowedValues": [
          "limited",
          "unlimited"
        ]
      },
      "EC2CapacityReservationInstanceMatchCriteria": {
        "AllowedValues": [
          "open",
          "targeted"
        ]
      },
      "EC2CapacityReservationInstancePlatform": {
        "AllowedValues": [
          "Linux with SQL Server Enterprise",
          "Linux with SQL Server Standard",
          "Linux with SQL Server Web",
          "Linux/UNIX",
          "Red Hat Enterprise Linux",
          "SUSE Linux",
          "Windows with SQL Server Enterprise",
          "Windows with SQL Server Standard",
          "Windows with SQL Server Web",
          "Windows with SQL Server",
          "Windows"
        ]
      },
      "EC2InstanceInitiatedShutdownBehavior": {
        "AllowedValues": [
          "stop",
          "terminate"
        ]
      },
      "EC2MarketType": {
        "AllowedValues": [
          "spot"
        ]
      },
      "EC2SpotInstanceInitiatedShutdownBehavior": {
        "AllowedValues": [
          "hibernate",
          "stop",
          "terminate"
        ]
      },
      "EC2SpotInstanceType": {
        "AllowedValues": [
          "one-time",
          "persistent"
        ]
      },
      "EFSFileSystemLifecyclePolicy": {
        "AllowedValues": [
          "AFTER_7_DAYS",
          "AFTER_14_DAYS",
          "AFTER_30_DAYS",
          "AFTER_60_DAYS",
          "AFTER_90_DAYS"
        ]
      },
      "EFSFileSystemPerformanceMode": {
        "AllowedValues": [
          "generalPurpose",
          "maxIO"
        ]
      },
      "EFSFileSystemThroughputMode": {
        "AllowedValues": [
          "bursting",
          "provisioned"
        ]
      },
      "EbsIops": {
        "NumberMax": 20000,
        "NumberMin": 100
      },
      "EbsVolumeType": {
        "AllowedValues": [
          "gp2",
          "io1",
          "sc1",
          "st1",
          "standard"
        ]
      },
      "Ec2CpuCredits": {
        "AllowedValues": [
          "standard",
          "unlimited"
        ]
      },
      "Ec2ElasticIpDomain": {
        "AllowedValues": [
          "standard",
          "vpc"
        ]
      },
      "Ec2FleetDefaultTargetCapacityType": {
        "AllowedValues": [
          "on-demand",
          "spot"
        ]
      },
      "Ec2FleetExcessCapacityTerminationPolicy": {
        "AllowedValues": [
          "no-termination",
          "termination"
        ]
      },
      "Ec2FleetOnDemandAllocationStrategy": {
        "AllowedValues": [
          "lowest-price",
          "prioritized"
        ]
      },
      "Ec2FleetSpotAllocationStrategy": {
        "AllowedValues": [
          "capacityOptimized",
          "diversified",
          "lowestPrice"
        ]
      },
      "Ec2FleetSpotInterruptionBehavior": {
        "AllowedValues": [
          "hibernate",
          "stop",
          "terminate"
        ]
      },
      "Ec2FleetType": {
        "AllowedValues": [
          "instant",
          "maintain",
          "request"
        ]
      },
      "Ec2FlowLogDestinationType": {
        "AllowedValues": [
          "cloud-watch-logs",
          "s3"
        ]
      },
      "Ec2FlowLogResourceType": {
        "AllowedValues": [
          "NetworkInterface",
          "Subnet",
          "VPC"
        ]
      },
      "Ec2FlowLogTrafficType": {
        "AllowedValues": [
          "ACCEPT",
          "ALL",
          "REJECT"
        ]
      },
      "Ec2HostAutoPlacement": {
        "AllowedValues": [
          "off",
          "on"
        ]
      },
      "Ec2InstanceType": {
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "Ec2Tenancy": {
        "AllowedValues": [
          "dedicated",
          "default",
          "host"
        ]
      },
      "EcsLaunchType": {
        "AllowedValues": [
          "EC2",
          "FARGATE"
        ]
      },
      "EcsNetworkMode": {
        "AllowedValues": [
          "awsvpc",
          "bridge",
          "host",
          "none"
        ]
      },
      "EcsSchedulingStrategy": {
        "AllowedValues": [
          "DAEMON",
          "REPLICA"
        ]
      },
      "EcsTaskDefinitionProxyType": {
        "AllowedValues": [
          "APPMESH"
        ]
      },
      "ElasticInferenceAccelerator": {
        "AllowedValues": [
          "eia1.large",
          "eia1.medium",
          "eia1.xlarge"
        ]
      },
      "HttpProtocol": {
        "AllowedValues": [
          "http",
          "https"
        ]
      },
      "ImageId": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String",
            "ImageId"
          ]
        }
      },
      "KeyPair": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String",
            "KeyPair"
          ]
        }
      },
      "KmsKey.Arn": {
        "GetAtt": {
          "AWS::KMS::Key": "Arn"
        },
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "KmsKey.Id": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::KMS::Key"
          ]
        }
      },
      "KmsKey.IdOrArn": {
        "GetAtt": {
          "AWS::KMS::Key": "Arn"
        },
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::KMS::Key"
          ]
        }
      },
      "LambdaRuntime": {
        "AllowedValues": [
          "dotnetcore1.0",
          "dotnetcore2.0",
          "dotnetcore2.1",
          "dotnetcore3.1",
          "go1.x",
          "java8",
          "java8.al2",
          "java11",
          "nodejs",
          "nodejs4.3-edge",
          "nodejs4.3",
          "nodejs6.10",
          "nodejs8.10",
          "nodejs10.x",
          "nodejs12.x",
          "provided",
          "provided.al2",
          "python2.7",
          "python3.6",
          "python3.7",
          "python3.8",
          "ruby2.5",
          "ruby2.7"
        ]
      },
      "LaunchConfigurationName": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::AutoScaling::LaunchConfiguration"
          ]
        }
      },
      "LaunchTemplateName": {
        "AllowedPattern": "[a-zA-Z0-9().-/_]+",
        "AllowedPatternRegex": "^[a-zA-Z0-9().\\-/_]+$",
        "StringMax": 128,
        "StringMin": 3
      },
      "LaunchTemplateTagSpecificationResourceType": {
        "AllowedValues": [
          "instance",
          "volume"
        ]
      },
      "LoadBalancerName": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::ElasticLoadBalancing::LoadBalancer"
          ]
        }
      },
      "LoadBalancerNames": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "Strings"
          ]
        }
      },
      "LoadBalancerPort": {
        "NumberMax": 65535,
        "NumberMin": 1,
        "Ref": {
          "Parameters": [
            "String",
            "Number"
          ]
        }
      },
      "LoadBalancerV2Arn": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::ElasticLoadBalancingV2::LoadBalancer"
          ]
        }
      },
      "MicrosoftADEdition": {
        "AllowedValues": [
          "Enterprise",
          "Standard"
        ]
      },
      "NeptuneInstanceClass": {
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "NetworkAclRuleAction": {
        "AllowedValues": [
          "allow",
          "deny"
        ]
      },
      "NetworkAclRuleNumber": {
        "NumberMax": 32766,
        "NumberMin": 1
      },
      "NetworkInterfacePermission": {
        "AllowedValues": [
          "EIP-ASSOCIATE",
          "INSTANCE-ATTACH"
        ]
      },
      "PerformanceInsightsRetentionPeriod": {
        "AllowedValues": [
          "7",
          "731"
        ]
      },
      "PlacementGroup": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::EC2::PlacementGroup"
          ]
        }
      },
      "PlacementGroupStrategy": {
        "AllowedValues": [
          "cluster",
          "partition",
          "spread"
        ]
      },
      "PlacementTenancy": {
        "AllowedValues": [
          "dedicated",
          "default"
        ],
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "PredicateType": {
        "AllowedValues": [
          "ByteMatch",
          "GeoMatch",
          "IPMatch",
          "RegexMatch",
          "SizeConstraint",
          "SqlInjectionMatch",
          "XssMatch"
        ]
      },
      "PrivateIpAddress": {
        "GetAtt": {
          "AWS::EC2::NetworkInterface": "PrimaryPrivateIpAddress"
        },
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "RdsInstanceMonitoringInterval": {
        "AllowedValues": [
          "0",
          "1",
          "5",
          "10",
          "15",
          "30",
          "60"
        ]
      },
      "RdsInstanceType": {
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "RecordSetFailover": {
        "AllowedValues": [
          "PRIMARY",
          "SECONDARY"
        ]
      },
      "RecordSetGeoContinentCode": {
        "AllowedValues": [
          "AF",
          "AN",
          "AS",
          "EU",
          "NA",
          "OC",
          "SA"
        ]
      },
      "RecordSetType": {
        "AllowedValues": [
          "A",
          "AAAA",
          "CAA",
          "CNAME",
          "MX",
          "NAPTR",
          "NS",
          "PTR",
          "SOA",
          "SPF",
          "SRV",
          "TXT"
        ]
      },
      "RedshiftClusterType": {
        "AllowedValues": [
          "multi-node",
          "single-node"
        ]
      },
      "RedshiftClusterVersion": {
        "AllowedValues": [
          "1.0"
        ]
      },
      "RedshiftInstanceType": {
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "Region": {
        "AllowedValues": [
          "af-south-1",
          "ap-northeast-1",
          "ap-northeast-2",
          "ap-northeast-3",
          "ap-south-1",
          "ap-southeast-1",
          "ap-southeast-2",
          "ca-central-1",
          "eu-central-1",
          "eu-north-1",
          "eu-west-1",
          "eu-west-2",
          "eu-west-3",
          "sa-east-1",
          "us-east-1",
          "us-east-2",
          "us-gov-east-1",
          "us-gov-west-1",
          "us-west-1",
          "us-west-2"
        ]
      },
      "RestApiId": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::ApiGateway::RestApi"
          ]
        }
      },
      "Route53HealthCheckConfigHealthStatus": {
        "AllowedValues": [
          "Healthy",
          "LastKnownStatus",
          "Unhealthy"
        ]
      },
      "Route53HealthCheckConfigType": {
        "AllowedValues": [
          "CALCULATED",
          "CLOUDWATCH_METRIC",
          "HTTP_STR_MATCH",
          "HTTP",
          "HTTPS_STR_MATCH",
          "HTTPS",
          "TCP"
        ]
      },
      "Route53ResolverEndpointDirection": {
        "AllowedValues": [
          "INBOUND",
          "OUTBOUND"
        ]
      },
      "Route53ResolverRuleType": {
        "AllowedValues": [
          "FORWARD",
          "RECURSIVE",
          "SYSTEM"
        ]
      },
      "S3BucketAccelerationStatus": {
        "AllowedValues": [
          "Enabled",
          "Suspended"
        ]
      },
      "S3BucketAccessControl": {
        "AllowedValues": [
          "AuthenticatedRead",
          "AwsExecRead",
          "BucketOwnerFullControl",
          "BucketOwnerRead",
          "LogDeliveryWrite",
          "Private",
          "PublicRead",
          "PublicReadWrite"
        ]
      },
      "S3BucketInventoryId": {
        "AllowedPattern": "[a-zA-Z0-9.-_]+",
        "AllowedPatternRegex": "^[a-zA-Z0-9-_.]+$",
        "StringMax": 64,
        "StringMin": 1
      },
      "S3BucketInventoryIncludedObjectVersions": {
        "AllowedValues": [
          "All",
          "Current"
        ]
      },
      "S3BucketInventoryScheduleFrequency": {
        "AllowedValues": [
          "Daily",
          "Weekly"
        ]
      },
      "S3BucketSSEAlgorithm": {
        "AllowedValues": [
          "AES256",
          "aws:kms"
        ]
      },
      "S3BucketTopicConfigurationEvent": {
        "AllowedValues": [
          "s3:ObjectCreated:*",
          "s3:ObjectCreated:CompleteMultipartUpload",
          "s3:ObjectCreated:Copy",
          "s3:ObjectCreated:Post",
          "s3:ObjectCreated:Put",
          "s3:ObjectRemoved:*",
          "s3:ObjectRemoved:Delete",
          "s3:ObjectRemoved:DeleteMarkerCreated",
          "s3:ObjectRestore:Completed",
          "s3:ObjectRestore:Post",
          "s3:ReducedRedundancyLostObject",
          "s3:Replication:OperationFailedReplication",
          "s3:Replication:OperationMissedThreshold",
          "s3:Replication:OperationReplicatedAfterThreshold",
          "s3:Replication:OperationNotTracked"
        ]
      },
      "S3BucketVersioningConfigurationStatus": {
        "AllowedValues": [
          "Enabled",
          "Suspended"
        ]
      },
      "SecretsManagerTargetType": {
        "AllowedValues": [
          "AWS::DocDB::DBCluster",
          "AWS::DocDB::DBInstance",
          "AWS::RDS::DBCluster",
          "AWS::RDS::DBInstance",
          "AWS::Redshift::Cluster"
        ]
      },
      "ServiceDiscoveryDnsType": {
        "AllowedValues": [
          "A",
          "AAAA",
          "SRV",
          "CNAME"
        ]
      },
      "ServiceDiscoveryHealthCheckConfigType": {
        "AllowedValues": [
          "HTTP",
          "HTTPS",
          "TCP"
        ]
      },
      "SesReceiptRuleTlsPolicy": {
        "AllowedValues": [
          "Optional",
          "Require"
        ]
      },
      "SimpleADSize": {
        "AllowedValues": [
          "Large",
          "Small"
        ]
      },
      "SnsSubscriptionProtocol": {
        "AllowedValues": [
          "application",
          "email-json",
          "email",
          "http",
          "https",
          "lambda",
          "sms",
          "sqs"
        ]
      },
      "SpotFleetExcessCapacityTerminationPolicy": {
        "AllowedValues": [
          "default",
          "noTermination"
        ]
      },
      "SpotFleetInstanceInterruptionBehavior": {
        "AllowedValues": [
          "hibernate",
          "stop",
          "terminate"
        ]
      },
      "SpotFleetType": {
        "AllowedValues": [
          "instant",
          "maintain",
          "request"
        ]
      },
      "SsmDocumentName": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::SSM::Document"
          ]
        }
      },
      "String": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ]
        }
      },
      "SubnetId": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String",
            "SubnetId"
          ],
          "Resources": [
            "AWS::EC2::Subnet"
          ]
        }
      },
      "SubnetIds": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "Strings",
            "SubnetIds"
          ]
        }
      },
      "TargetGroupArn": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "String"
          ],
          "Resources": [
            "AWS::ElasticLoadBalancingV2::TargetGroup"
          ]
        }
      },
      "TargetGroupArns": {
        "GetAtt": {},
        "Ref": {
          "Parameters": [
            "Strings"
          ]
        }
      },
      "TargetGroupHealthCheckTimeoutSeconds": {
        "NumberMax": 120,
        "NumberMin": 2
      },
      "TargetGroupHealthyThresholdCount": {
        "NumberMax": 10,
        "NumberMin": 2
      },
      "TransitGatewayEnabled": {
        "AllowedValues": [
          "disable",
          "enable"
        ]
      },
      "VpcEndpointConnectionEvents": {
        "AllowedValues": [
          "Accept",
          "Connect",
          "Delete",
          "Reject"
        ]
      },
      "VpcEndpointType": {
        "AllowedValues": [
          "Gateway",
          "Interface"
        ]
      },
      "VpnType": {
        "AllowedValues": [
          "ipsec.1"
        ]
      }
    }
  }
]
