AcceptAddressTransfer

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Address == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AcceptReservedInstancesExchangeQuote

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ReservedInstanceId[_] == STRING
    input.Body.TargetConfiguration[_].InstanceCount == INTEGER
    input.Body.TargetConfiguration[_].OfferingId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AcceptTransitGatewayMulticastDomainAssociations

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.SubnetIds[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AcceptTransitGatewayPeeringAttachment

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AcceptTransitGatewayVpcAttachment

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AcceptVpcEndpointConnections

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId == STRING
    input.Body.VpcEndpointId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AcceptVpcPeeringConnection

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.vpcPeeringConnectionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AdvertiseByoipCidr

valid {
    input.Body.Cidr == STRING
    input.Body.Asn == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.NetworkBorderGroup == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AllocateAddress

enum_DomainType := [ "vpc", "standard" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Domain == enum_DomainType[_]
    input.Body.Address == STRING
    input.Body.PublicIpv4Pool == STRING
    input.Body.NetworkBorderGroup == STRING
    input.Body.CustomerOwnedIpv4Pool == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AllocateHosts

enum_AutoPlacement := [ "on", "off" ]
enum_HostMaintenance := [ "on", "off" ]
enum_HostRecovery := [ "on", "off" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.autoPlacement == enum_AutoPlacement[_]
    input.Body.availabilityZone == STRING
    input.Body.clientToken == STRING
    input.Body.instanceType == STRING
    input.Body.InstanceFamily == STRING
    input.Body.quantity == INTEGER
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.HostRecovery == enum_HostRecovery[_]
    input.Body.OutpostArn == STRING
    input.Body.HostMaintenance == enum_HostMaintenance[_]
    input.Body.AssetId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AllocateIpamPoolCidr

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.Cidr == STRING
    input.Body.NetmaskLength == INTEGER
    input.Body.ClientToken == STRING
    input.Body.Description == STRING
    input.Body.PreviewNextCidr == BOOLEAN
    input.Body.AllowedCidr[_] == STRING
    input.Body.DisallowedCidr[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ApplySecurityGroupsToClientVpnTargetNetwork

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.VpcId == STRING
    input.Body.SecurityGroupId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssignIpv6Addresses

valid {
    input.Body.ipv6AddressCount == INTEGER
    input.Body.ipv6Addresses[_] == STRING
    input.Body.Ipv6PrefixCount == INTEGER
    input.Body.Ipv6Prefix[_] == STRING
    input.Body.networkInterfaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssignPrivateIpAddresses

valid {
    input.Body.allowReassignment == BOOLEAN
    input.Body.networkInterfaceId == STRING
    input.Body.privateIpAddress[_] == STRING
    input.Body.secondaryPrivateIpAddressCount == INTEGER
    input.Body.Ipv4Prefix[_] == STRING
    input.Body.Ipv4PrefixCount == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssignPrivateNatGatewayAddress

valid {
    input.Body.NatGatewayId == STRING
    input.Body.PrivateIpAddress[_] == STRING
    input.Body.PrivateIpAddressCount == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateAddress

valid {
    input.Body.AllocationId == STRING
    input.Body.InstanceId == STRING
    input.Body.PublicIp == STRING
    input.Body.allowReassociation == BOOLEAN
    input.Body.dryRun == BOOLEAN
    input.Body.networkInterfaceId == STRING
    input.Body.privateIpAddress == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateClientVpnTargetNetwork

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.SubnetId == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateDhcpOptions

valid {
    input.Body.DhcpOptionsId == STRING
    input.Body.VpcId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateEnclaveCertificateIamRole

valid {
    input.Body.CertificateArn == STRING
    input.Body.RoleArn == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateIamInstanceProfile

valid {
    input.Body.IamInstanceProfile.arn == STRING
    input.Body.IamInstanceProfile.name == STRING
    input.Body.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateInstanceEventWindow

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceEventWindowId == STRING
    input.Body.AssociationTarget.InstanceId[_] == STRING
    input.Body.AssociationTarget.InstanceTag[_].key == STRING
    input.Body.AssociationTarget.InstanceTag[_].value == STRING
    input.Body.AssociationTarget.DedicatedHostId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateIpamByoasn

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Asn == STRING
    input.Body.Cidr == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateIpamResourceDiscovery

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamId == STRING
    input.Body.IpamResourceDiscoveryId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateNatGatewayAddress

valid {
    input.Body.NatGatewayId == STRING
    input.Body.AllocationId[_] == STRING
    input.Body.PrivateIpAddress[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateRouteTable

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.routeTableId == STRING
    input.Body.subnetId == STRING
    input.Body.GatewayId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateSubnetCidrBlock

valid {
    input.Body.ipv6CidrBlock == STRING
    input.Body.subnetId == STRING
    input.Body.Ipv6IpamPoolId == STRING
    input.Body.Ipv6NetmaskLength == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateTransitGatewayMulticastDomain

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.SubnetIds[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateTransitGatewayPolicyTable

valid {
    input.Body.TransitGatewayPolicyTableId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateTransitGatewayRouteTable

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateTrunkInterface

valid {
    input.Body.BranchInterfaceId == STRING
    input.Body.TrunkInterfaceId == STRING
    input.Body.VlanId == INTEGER
    input.Body.GreKey == INTEGER
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateVpcCidrBlock

valid {
    input.Body.amazonProvidedIpv6CidrBlock == BOOLEAN
    input.Body.CidrBlock == STRING
    input.Body.vpcId == STRING
    input.Body.Ipv6CidrBlockNetworkBorderGroup == STRING
    input.Body.Ipv6Pool == STRING
    input.Body.Ipv6CidrBlock == STRING
    input.Body.Ipv4IpamPoolId == STRING
    input.Body.Ipv4NetmaskLength == INTEGER
    input.Body.Ipv6IpamPoolId == STRING
    input.Body.Ipv6NetmaskLength == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachClassicLinkVpc

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.SecurityGroupId[_] == STRING
    input.Body.instanceId == STRING
    input.Body.vpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachInternetGateway

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.internetGatewayId == STRING
    input.Body.vpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachNetworkInterface

valid {
    input.Body.deviceIndex == INTEGER
    input.Body.dryRun == BOOLEAN
    input.Body.instanceId == STRING
    input.Body.networkInterfaceId == STRING
    input.Body.NetworkCardIndex == INTEGER
    input.Body.EnaSrdSpecification.EnaSrdEnabled == BOOLEAN
    input.Body.EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachVerifiedAccessTrustProvider

valid {
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.VerifiedAccessTrustProviderId == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachVolume

valid {
    input.Body.Device == STRING
    input.Body.InstanceId == STRING
    input.Body.VolumeId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachVpnGateway

valid {
    input.Body.VpcId == STRING
    input.Body.VpnGatewayId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AuthorizeClientVpnIngress

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.TargetNetworkCidr == STRING
    input.Body.AccessGroupId == STRING
    input.Body.AuthorizeAllGroups == BOOLEAN
    input.Body.Description == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AuthorizeSecurityGroupEgress

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.groupId == STRING
    input.Body.ipPermissions[_].fromPort == INTEGER
    input.Body.ipPermissions[_].ipProtocol == STRING
    input.Body.ipPermissions[_].ipRanges[_].cidrIp == STRING
    input.Body.ipPermissions[_].ipRanges[_].description == STRING
    input.Body.ipPermissions[_].ipv6Ranges[_].cidrIpv6 == STRING
    input.Body.ipPermissions[_].ipv6Ranges[_].description == STRING
    input.Body.ipPermissions[_].prefixListIds[_].description == STRING
    input.Body.ipPermissions[_].prefixListIds[_].prefixListId == STRING
    input.Body.ipPermissions[_].toPort == INTEGER
    input.Body.ipPermissions[_].groups[_].description == STRING
    input.Body.ipPermissions[_].groups[_].groupId == STRING
    input.Body.ipPermissions[_].groups[_].groupName == STRING
    input.Body.ipPermissions[_].groups[_].peeringStatus == STRING
    input.Body.ipPermissions[_].groups[_].userId == STRING
    input.Body.ipPermissions[_].groups[_].vpcId == STRING
    input.Body.ipPermissions[_].groups[_].vpcPeeringConnectionId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.cidrIp == STRING
    input.Body.fromPort == INTEGER
    input.Body.ipProtocol == STRING
    input.Body.toPort == INTEGER
    input.Body.sourceSecurityGroupName == STRING
    input.Body.sourceSecurityGroupOwnerId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AuthorizeSecurityGroupIngress

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.CidrIp == STRING
    input.Body.FromPort == INTEGER
    input.Body.GroupId == STRING
    input.Body.GroupName == STRING
    input.Body.IpPermissions[_].fromPort == INTEGER
    input.Body.IpPermissions[_].ipProtocol == STRING
    input.Body.IpPermissions[_].ipRanges[_].cidrIp == STRING
    input.Body.IpPermissions[_].ipRanges[_].description == STRING
    input.Body.IpPermissions[_].ipv6Ranges[_].cidrIpv6 == STRING
    input.Body.IpPermissions[_].ipv6Ranges[_].description == STRING
    input.Body.IpPermissions[_].prefixListIds[_].description == STRING
    input.Body.IpPermissions[_].prefixListIds[_].prefixListId == STRING
    input.Body.IpPermissions[_].toPort == INTEGER
    input.Body.IpPermissions[_].groups[_].description == STRING
    input.Body.IpPermissions[_].groups[_].groupId == STRING
    input.Body.IpPermissions[_].groups[_].groupName == STRING
    input.Body.IpPermissions[_].groups[_].peeringStatus == STRING
    input.Body.IpPermissions[_].groups[_].userId == STRING
    input.Body.IpPermissions[_].groups[_].vpcId == STRING
    input.Body.IpPermissions[_].groups[_].vpcPeeringConnectionId == STRING
    input.Body.IpProtocol == STRING
    input.Body.SourceSecurityGroupName == STRING
    input.Body.SourceSecurityGroupOwnerId == STRING
    input.Body.ToPort == INTEGER
    input.Body.dryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BundleInstance

valid {
    input.Body.InstanceId == STRING
    input.Body.Storage.S3.AWSAccessKeyId == STRING
    input.Body.Storage.S3.bucket == STRING
    input.Body.Storage.S3.prefix == STRING
    input.Body.Storage.S3.uploadPolicy == BLOB
    input.Body.Storage.S3.uploadPolicySignature == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelBundleTask

valid {
    input.Body.BundleId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelCapacityReservation

valid {
    input.Body.CapacityReservationId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelCapacityReservationFleets

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.CapacityReservationFleetId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelConversionTask

valid {
    input.Body.conversionTaskId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.reasonMessage == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelExportTask

valid {
    input.Body.exportTaskId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelImageLaunchPermission

valid {
    input.Body.ImageId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelImportTask

valid {
    input.Body.CancelReason == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ImportTaskId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelReservedInstancesListing

valid {
    input.Body.reservedInstancesListingId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelSpotFleetRequests

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.spotFleetRequestId[_] == STRING
    input.Body.terminateInstances == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelSpotInstanceRequests

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.SpotInstanceRequestId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ConfirmProductInstance

valid {
    input.Body.InstanceId == STRING
    input.Body.ProductCode == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CopyFpgaImage

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.SourceFpgaImageId == STRING
    input.Body.Description == STRING
    input.Body.Name == STRING
    input.Body.SourceRegion == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CopyImage

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.Description == STRING
    input.Body.encrypted == BOOLEAN
    input.Body.kmsKeyId == STRING
    input.Body.Name == STRING
    input.Body.SourceImageId == STRING
    input.Body.SourceRegion == STRING
    input.Body.DestinationOutpostArn == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.CopyImageTags == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CopySnapshot

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Description == STRING
    input.Body.DestinationOutpostArn == STRING
    input.Body.destinationRegion == STRING
    input.Body.encrypted == BOOLEAN
    input.Body.kmsKeyId == STRING
    input.Body.presignedUrl == STRING
    input.Body.SourceRegion == STRING
    input.Body.SourceSnapshotId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCapacityReservation

enum_CapacityReservationInstancePlatform := [ "Linux/UNIX", "Red Hat Enterprise Linux", "SUSE Linux", "Windows", "Windows with SQL Server", "Windows with SQL Server Enterprise", "Windows with SQL Server Standard", "Windows with SQL Server Web", "Linux with SQL Server Standard", "Linux with SQL Server Web", "Linux with SQL Server Enterprise", "RHEL with SQL Server Standard", "RHEL with SQL Server Enterprise", "RHEL with SQL Server Web", "RHEL with HA", "RHEL with HA and SQL Server Standard", "RHEL with HA and SQL Server Enterprise", "Ubuntu Pro" ]
enum_CapacityReservationTenancy := [ "default", "dedicated" ]
enum_EndDateType := [ "unlimited", "limited" ]
enum_InstanceMatchCriteria := [ "open", "targeted" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.InstanceType == STRING
    input.Body.InstancePlatform == enum_CapacityReservationInstancePlatform[_]
    input.Body.AvailabilityZone == STRING
    input.Body.AvailabilityZoneId == STRING
    input.Body.Tenancy == enum_CapacityReservationTenancy[_]
    input.Body.InstanceCount == INTEGER
    input.Body.EbsOptimized == BOOLEAN
    input.Body.EphemeralStorage == BOOLEAN
    input.Body.EndDate == TIMESTAMP
    input.Body.EndDateType == enum_EndDateType[_]
    input.Body.InstanceMatchCriteria == enum_InstanceMatchCriteria[_]
    input.Body.TagSpecifications[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecifications[_].Tag[_].key == STRING
    input.Body.TagSpecifications[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.OutpostArn == STRING
    input.Body.PlacementGroupArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCapacityReservationFleet

enum_CapacityReservationInstancePlatform := [ "Linux/UNIX", "Red Hat Enterprise Linux", "SUSE Linux", "Windows", "Windows with SQL Server", "Windows with SQL Server Enterprise", "Windows with SQL Server Standard", "Windows with SQL Server Web", "Linux with SQL Server Standard", "Linux with SQL Server Web", "Linux with SQL Server Enterprise", "RHEL with SQL Server Standard", "RHEL with SQL Server Enterprise", "RHEL with SQL Server Web", "RHEL with HA", "RHEL with HA and SQL Server Standard", "RHEL with HA and SQL Server Enterprise", "Ubuntu Pro" ]
enum_FleetCapacityReservationTenancy := [ "default" ]
enum_FleetInstanceMatchCriteria := [ "open" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.AllocationStrategy == STRING
    input.Body.ClientToken == STRING
    input.Body.InstanceTypeSpecification[_].InstanceType == enum_InstanceType[_]
    input.Body.InstanceTypeSpecification[_].InstancePlatform == enum_CapacityReservationInstancePlatform[_]
    input.Body.InstanceTypeSpecification[_].Weight == DOUBLE
    input.Body.InstanceTypeSpecification[_].AvailabilityZone == STRING
    input.Body.InstanceTypeSpecification[_].AvailabilityZoneId == STRING
    input.Body.InstanceTypeSpecification[_].EbsOptimized == BOOLEAN
    input.Body.InstanceTypeSpecification[_].Priority == INTEGER
    input.Body.Tenancy == enum_FleetCapacityReservationTenancy[_]
    input.Body.TotalTargetCapacity == INTEGER
    input.Body.EndDate == TIMESTAMP
    input.Body.InstanceMatchCriteria == enum_FleetInstanceMatchCriteria[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCarrierGateway

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.VpcId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateClientVpnEndpoint

enum_ClientVpnAuthenticationType := [ "certificate-authentication", "directory-service-authentication", "federated-authentication" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_SelfServicePortal := [ "enabled", "disabled" ]
enum_TransportProtocol := [ "tcp", "udp" ]

valid {
    input.Body.ClientCidrBlock == STRING
    input.Body.ServerCertificateArn == STRING
    input.Body.Authentication[_].Type == enum_ClientVpnAuthenticationType[_]
    input.Body.Authentication[_].ActiveDirectory.DirectoryId == STRING
    input.Body.Authentication[_].MutualAuthentication.ClientRootCertificateChainArn == STRING
    input.Body.Authentication[_].FederatedAuthentication.SAMLProviderArn == STRING
    input.Body.Authentication[_].FederatedAuthentication.SelfServiceSAMLProviderArn == STRING
    input.Body.ConnectionLogOptions.Enabled == BOOLEAN
    input.Body.ConnectionLogOptions.CloudwatchLogGroup == STRING
    input.Body.ConnectionLogOptions.CloudwatchLogStream == STRING
    input.Body.DnsServers[_] == STRING
    input.Body.TransportProtocol == enum_TransportProtocol[_]
    input.Body.VpnPort == INTEGER
    input.Body.Description == STRING
    input.Body.SplitTunnel == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.SecurityGroupId[_] == STRING
    input.Body.VpcId == STRING
    input.Body.SelfServicePortal == enum_SelfServicePortal[_]
    input.Body.ClientConnectOptions.Enabled == BOOLEAN
    input.Body.ClientConnectOptions.LambdaFunctionArn == STRING
    input.Body.SessionTimeoutHours == INTEGER
    input.Body.ClientLoginBannerOptions.Enabled == BOOLEAN
    input.Body.ClientLoginBannerOptions.BannerText == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateClientVpnRoute

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.DestinationCidrBlock == STRING
    input.Body.TargetVpcSubnetId == STRING
    input.Body.Description == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCoipCidr

valid {
    input.Body.Cidr == STRING
    input.Body.CoipPoolId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCoipPool

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.LocalGatewayRouteTableId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCustomerGateway

enum_GatewayType := [ "ipsec.1" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.BgpAsn == INTEGER
    input.Body.PublicIp == STRING
    input.Body.CertificateArn == STRING
    input.Body.Type == enum_GatewayType[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DeviceName == STRING
    input.Body.IpAddress == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDefaultSubnet

valid {
    input.Body.AvailabilityZone == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Ipv6Native == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDefaultVpc

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDhcpOptions

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.dhcpConfiguration[_].Key == STRING
    input.Body.dhcpConfiguration[_].Value[_] == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEgressOnlyInternetGateway

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.VpcId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFleet

enum_AcceleratorManufacturer := [ "amazon-web-services", "amd", "nvidia", "xilinx", "habana" ]
enum_AcceleratorName := [ "a100", "inferentia", "k520", "k80", "m60", "radeon-pro-v520", "t4", "vu9p", "v100", "a10g", "h100", "t4g" ]
enum_AcceleratorType := [ "gpu", "fpga", "inference" ]
enum_BareMetal := [ "included", "required", "excluded" ]
enum_BurstablePerformance := [ "included", "required", "excluded" ]
enum_CpuManufacturer := [ "intel", "amd", "amazon-web-services" ]
enum_DefaultTargetCapacityType := [ "spot", "on-demand", "capacity-block" ]
enum_FleetCapacityReservationUsageStrategy := [ "use-capacity-reservations-first" ]
enum_FleetExcessCapacityTerminationPolicy := [ "no-termination", "termination" ]
enum_FleetOnDemandAllocationStrategy := [ "lowest-price", "prioritized" ]
enum_FleetReplacementStrategy := [ "launch", "launch-before-terminate" ]
enum_FleetType := [ "request", "maintain", "instant" ]
enum_InstanceGeneration := [ "current", "previous" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_LocalStorage := [ "included", "required", "excluded" ]
enum_LocalStorageType := [ "hdd", "ssd" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_SpotAllocationStrategy := [ "lowest-price", "diversified", "capacity-optimized", "capacity-optimized-prioritized", "price-capacity-optimized" ]
enum_SpotInstanceInterruptionBehavior := [ "hibernate", "stop", "terminate" ]
enum_TargetCapacityUnitType := [ "vcpu", "memory-mib", "units" ]
enum_Tenancy := [ "default", "dedicated", "host" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.SpotOptions.AllocationStrategy == enum_SpotAllocationStrategy[_]
    input.Body.SpotOptions.MaintenanceStrategies.CapacityRebalance.ReplacementStrategy == enum_FleetReplacementStrategy[_]
    input.Body.SpotOptions.MaintenanceStrategies.CapacityRebalance.TerminationDelay == INTEGER
    input.Body.SpotOptions.InstanceInterruptionBehavior == enum_SpotInstanceInterruptionBehavior[_]
    input.Body.SpotOptions.InstancePoolsToUseCount == INTEGER
    input.Body.SpotOptions.SingleInstanceType == BOOLEAN
    input.Body.SpotOptions.SingleAvailabilityZone == BOOLEAN
    input.Body.SpotOptions.MinTargetCapacity == INTEGER
    input.Body.SpotOptions.MaxTotalPrice == STRING
    input.Body.OnDemandOptions.AllocationStrategy == enum_FleetOnDemandAllocationStrategy[_]
    input.Body.OnDemandOptions.CapacityReservationOptions.UsageStrategy == enum_FleetCapacityReservationUsageStrategy[_]
    input.Body.OnDemandOptions.SingleInstanceType == BOOLEAN
    input.Body.OnDemandOptions.SingleAvailabilityZone == BOOLEAN
    input.Body.OnDemandOptions.MinTargetCapacity == INTEGER
    input.Body.OnDemandOptions.MaxTotalPrice == STRING
    input.Body.ExcessCapacityTerminationPolicy == enum_FleetExcessCapacityTerminationPolicy[_]
    input.Body.LaunchTemplateConfigs[_].LaunchTemplateSpecification.LaunchTemplateId == STRING
    input.Body.LaunchTemplateConfigs[_].LaunchTemplateSpecification.LaunchTemplateName == STRING
    input.Body.LaunchTemplateConfigs[_].LaunchTemplateSpecification.Version == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceType == enum_InstanceType[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].MaxPrice == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].SubnetId == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].AvailabilityZone == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].WeightedCapacity == DOUBLE
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Priority == DOUBLE
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.availabilityZone == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.affinity == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.groupName == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.partitionNumber == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.hostId == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.tenancy == enum_Tenancy[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.spreadDomain == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.hostResourceGroupArn == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].Placement.groupId == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.VCpuCount.Min == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.VCpuCount.Max == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.MemoryMiB.Min == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.MemoryMiB.Max == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.CpuManufacturer[_] == enum_CpuManufacturer[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.MemoryGiBPerVCpu.Min == DOUBLE
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.MemoryGiBPerVCpu.Max == DOUBLE
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.ExcludedInstanceType[_] == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.InstanceGeneration[_] == enum_InstanceGeneration[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.SpotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.OnDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.BareMetal == enum_BareMetal[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.BurstablePerformance == enum_BurstablePerformance[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.RequireHibernateSupport == BOOLEAN
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.NetworkInterfaceCount.Min == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.NetworkInterfaceCount.Max == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.LocalStorage == enum_LocalStorage[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.LocalStorageType[_] == enum_LocalStorageType[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.TotalLocalStorageGB.Min == DOUBLE
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.TotalLocalStorageGB.Max == DOUBLE
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.BaselineEbsBandwidthMbps.Min == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.BaselineEbsBandwidthMbps.Max == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.AcceleratorType[_] == enum_AcceleratorType[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.AcceleratorCount.Min == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.AcceleratorCount.Max == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.AcceleratorManufacturer[_] == enum_AcceleratorManufacturer[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.AcceleratorName[_] == enum_AcceleratorName[_]
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.AcceleratorTotalMemoryMiB.Min == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.AcceleratorTotalMemoryMiB.Max == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.NetworkBandwidthGbps.Min == DOUBLE
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.NetworkBandwidthGbps.Max == DOUBLE
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.AllowedInstanceType[_] == STRING
    input.Body.LaunchTemplateConfigs[_].Overrides[_].InstanceRequirements.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.LaunchTemplateConfigs[_].Overrides[_].ImageId == STRING
    input.Body.TargetCapacitySpecification.TotalTargetCapacity == INTEGER
    input.Body.TargetCapacitySpecification.OnDemandTargetCapacity == INTEGER
    input.Body.TargetCapacitySpecification.SpotTargetCapacity == INTEGER
    input.Body.TargetCapacitySpecification.DefaultTargetCapacityType == enum_DefaultTargetCapacityType[_]
    input.Body.TargetCapacitySpecification.TargetCapacityUnitType == enum_TargetCapacityUnitType[_]
    input.Body.TerminateInstancesWithExpiration == BOOLEAN
    input.Body.Type == enum_FleetType[_]
    input.Body.ValidFrom == TIMESTAMP
    input.Body.ValidUntil == TIMESTAMP
    input.Body.ReplaceUnhealthyInstances == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.Context == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFlowLogs

enum_DestinationFileFormat := [ "plain-text", "parquet" ]
enum_FlowLogsResourceType := [ "VPC", "Subnet", "NetworkInterface", "TransitGateway", "TransitGatewayAttachment" ]
enum_LogDestinationType := [ "cloud-watch-logs", "s3", "kinesis-data-firehose" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_TrafficType := [ "ACCEPT", "REJECT", "ALL" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.DeliverLogsPermissionArn == STRING
    input.Body.DeliverCrossAccountRole == STRING
    input.Body.LogGroupName == STRING
    input.Body.ResourceId[_] == STRING
    input.Body.ResourceType == enum_FlowLogsResourceType[_]
    input.Body.TrafficType == enum_TrafficType[_]
    input.Body.LogDestinationType == enum_LogDestinationType[_]
    input.Body.LogDestination == STRING
    input.Body.LogFormat == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.MaxAggregationInterval == INTEGER
    input.Body.DestinationOptions.FileFormat == enum_DestinationFileFormat[_]
    input.Body.DestinationOptions.HiveCompatiblePartitions == BOOLEAN
    input.Body.DestinationOptions.PerHourPartition == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFpgaImage

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InputStorageLocation.Bucket == STRING
    input.Body.InputStorageLocation.Key == STRING
    input.Body.LogsStorageLocation.Bucket == STRING
    input.Body.LogsStorageLocation.Key == STRING
    input.Body.Description == STRING
    input.Body.Name == STRING
    input.Body.ClientToken == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateImage

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.blockDeviceMapping[_].deviceName == STRING
    input.Body.blockDeviceMapping[_].virtualName == STRING
    input.Body.blockDeviceMapping[_].ebs.deleteOnTermination == BOOLEAN
    input.Body.blockDeviceMapping[_].ebs.iops == INTEGER
    input.Body.blockDeviceMapping[_].ebs.snapshotId == STRING
    input.Body.blockDeviceMapping[_].ebs.volumeSize == INTEGER
    input.Body.blockDeviceMapping[_].ebs.volumeType == enum_VolumeType[_]
    input.Body.blockDeviceMapping[_].ebs.kmsKeyId == STRING
    input.Body.blockDeviceMapping[_].ebs.throughput == INTEGER
    input.Body.blockDeviceMapping[_].ebs.outpostArn == STRING
    input.Body.blockDeviceMapping[_].ebs.encrypted == BOOLEAN
    input.Body.blockDeviceMapping[_].noDevice == STRING
    input.Body.description == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.instanceId == STRING
    input.Body.name == STRING
    input.Body.noReboot == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInstanceConnectEndpoint

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.SubnetId == STRING
    input.Body.SecurityGroupId[_] == STRING
    input.Body.PreserveClientIp == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInstanceEventWindow

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_WeekDay := [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Name == STRING
    input.Body.TimeRange[_].StartWeekDay == enum_WeekDay[_]
    input.Body.TimeRange[_].StartHour == INTEGER
    input.Body.TimeRange[_].EndWeekDay == enum_WeekDay[_]
    input.Body.TimeRange[_].EndHour == INTEGER
    input.Body.CronExpression == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInstanceExportTask

enum_ContainerFormat := [ "ova" ]
enum_DiskImageFormat := [ "VMDK", "RAW", "VHD" ]
enum_ExportEnvironment := [ "citrix", "vmware", "microsoft" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.description == STRING
    input.Body.exportToS3.containerFormat == enum_ContainerFormat[_]
    input.Body.exportToS3.diskImageFormat == enum_DiskImageFormat[_]
    input.Body.exportToS3.s3Bucket == STRING
    input.Body.exportToS3.s3Prefix == STRING
    input.Body.instanceId == STRING
    input.Body.targetEnvironment == enum_ExportEnvironment[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInternetGateway

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIpam

enum_IpamTier := [ "free", "advanced" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Description == STRING
    input.Body.OperatingRegion[_].RegionName == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.Body.Tier == enum_IpamTier[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIpamPool

enum_AddressFamily := [ "ipv4", "ipv6" ]
enum_IpamPoolAwsService := [ "ec2" ]
enum_IpamPoolPublicIpSource := [ "amazon", "byoip" ]
enum_IpamPoolSourceResourceType := [ "vpc" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamScopeId == STRING
    input.Body.Locale == STRING
    input.Body.SourceIpamPoolId == STRING
    input.Body.Description == STRING
    input.Body.AddressFamily == enum_AddressFamily[_]
    input.Body.AutoImport == BOOLEAN
    input.Body.PubliclyAdvertisable == BOOLEAN
    input.Body.AllocationMinNetmaskLength == INTEGER
    input.Body.AllocationMaxNetmaskLength == INTEGER
    input.Body.AllocationDefaultNetmaskLength == INTEGER
    input.Body.AllocationResourceTag[_].Key == STRING
    input.Body.AllocationResourceTag[_].Value == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.Body.AwsService == enum_IpamPoolAwsService[_]
    input.Body.PublicIpSource == enum_IpamPoolPublicIpSource[_]
    input.Body.SourceResource.ResourceId == STRING
    input.Body.SourceResource.ResourceType == enum_IpamPoolSourceResourceType[_]
    input.Body.SourceResource.ResourceRegion == STRING
    input.Body.SourceResource.ResourceOwner == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIpamResourceDiscovery

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Description == STRING
    input.Body.OperatingRegion[_].RegionName == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIpamScope

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamId == STRING
    input.Body.Description == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKeyPair

enum_KeyFormat := [ "pem", "ppk" ]
enum_KeyType := [ "rsa", "ed25519" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.KeyName == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.KeyType == enum_KeyType[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.KeyFormat == enum_KeyFormat[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLaunchTemplate

enum_AcceleratorManufacturer := [ "amazon-web-services", "amd", "nvidia", "xilinx", "habana" ]
enum_AcceleratorName := [ "a100", "inferentia", "k520", "k80", "m60", "radeon-pro-v520", "t4", "vu9p", "v100", "a10g", "h100", "t4g" ]
enum_AcceleratorType := [ "gpu", "fpga", "inference" ]
enum_AmdSevSnpSpecification := [ "enabled", "disabled" ]
enum_BareMetal := [ "included", "required", "excluded" ]
enum_BurstablePerformance := [ "included", "required", "excluded" ]
enum_CapacityReservationPreference := [ "open", "none" ]
enum_CpuManufacturer := [ "intel", "amd", "amazon-web-services" ]
enum_HostnameType := [ "ip-name", "resource-name" ]
enum_InstanceGeneration := [ "current", "previous" ]
enum_InstanceInterruptionBehavior := [ "hibernate", "stop", "terminate" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_LaunchTemplateAutoRecoveryState := [ "default", "disabled" ]
enum_LaunchTemplateHttpTokensState := [ "optional", "required" ]
enum_LaunchTemplateInstanceMetadataEndpointState := [ "disabled", "enabled" ]
enum_LaunchTemplateInstanceMetadataProtocolIpv6 := [ "disabled", "enabled" ]
enum_LaunchTemplateInstanceMetadataTagsState := [ "disabled", "enabled" ]
enum_LocalStorage := [ "included", "required", "excluded" ]
enum_LocalStorageType := [ "hdd", "ssd" ]
enum_MarketType := [ "spot", "capacity-block" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_ShutdownBehavior := [ "stop", "terminate" ]
enum_SpotInstanceType := [ "one-time", "persistent" ]
enum_Tenancy := [ "default", "dedicated", "host" ]
enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.LaunchTemplateName == STRING
    input.Body.VersionDescription == STRING
    input.Body.LaunchTemplateData.KernelId == STRING
    input.Body.LaunchTemplateData.EbsOptimized == BOOLEAN
    input.Body.LaunchTemplateData.IamInstanceProfile.Arn == STRING
    input.Body.LaunchTemplateData.IamInstanceProfile.Name == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].DeviceName == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].VirtualName == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.Encrypted == BOOLEAN
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.DeleteOnTermination == BOOLEAN
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.Iops == INTEGER
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.KmsKeyId == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.SnapshotId == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.VolumeSize == INTEGER
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.VolumeType == enum_VolumeType[_]
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.Throughput == INTEGER
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].NoDevice == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].AssociateCarrierIpAddress == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].AssociatePublicIpAddress == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].DeleteOnTermination == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].Description == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].DeviceIndex == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].SecurityGroupId[_] == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].InterfaceType == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv6AddressCount == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv6Addresses[_].Ipv6Address == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].NetworkInterfaceId == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].PrivateIpAddress == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].PrivateIpAddresses[_].primary == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].PrivateIpAddresses[_].privateIpAddress == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].SecondaryPrivateIpAddressCount == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].SubnetId == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].NetworkCardIndex == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv4Prefix[_].Ipv4Prefix == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv4PrefixCount == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv6Prefix[_].Ipv6Prefix == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv6PrefixCount == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].PrimaryIpv6 == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].EnaSrdSpecification.EnaSrdEnabled == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].ConnectionTrackingSpecification.TcpEstablishedTimeout == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].ConnectionTrackingSpecification.UdpStreamTimeout == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].ConnectionTrackingSpecification.UdpTimeout == INTEGER
    input.Body.LaunchTemplateData.ImageId == STRING
    input.Body.LaunchTemplateData.InstanceType == enum_InstanceType[_]
    input.Body.LaunchTemplateData.KeyName == STRING
    input.Body.LaunchTemplateData.Monitoring.Enabled == BOOLEAN
    input.Body.LaunchTemplateData.Placement.AvailabilityZone == STRING
    input.Body.LaunchTemplateData.Placement.Affinity == STRING
    input.Body.LaunchTemplateData.Placement.GroupName == STRING
    input.Body.LaunchTemplateData.Placement.HostId == STRING
    input.Body.LaunchTemplateData.Placement.Tenancy == enum_Tenancy[_]
    input.Body.LaunchTemplateData.Placement.SpreadDomain == STRING
    input.Body.LaunchTemplateData.Placement.HostResourceGroupArn == STRING
    input.Body.LaunchTemplateData.Placement.PartitionNumber == INTEGER
    input.Body.LaunchTemplateData.Placement.GroupId == STRING
    input.Body.LaunchTemplateData.RamDiskId == STRING
    input.Body.LaunchTemplateData.DisableApiTermination == BOOLEAN
    input.Body.LaunchTemplateData.InstanceInitiatedShutdownBehavior == enum_ShutdownBehavior[_]
    input.Body.LaunchTemplateData.UserData == STRING
    input.Body.LaunchTemplateData.TagSpecification[_].ResourceType == enum_ResourceType[_]
    input.Body.LaunchTemplateData.TagSpecification[_].Tag[_].key == STRING
    input.Body.LaunchTemplateData.TagSpecification[_].Tag[_].value == STRING
    input.Body.LaunchTemplateData.ElasticGpuSpecification[_].Type == STRING
    input.Body.LaunchTemplateData.ElasticInferenceAccelerator[_].Type == STRING
    input.Body.LaunchTemplateData.ElasticInferenceAccelerator[_].Count == INTEGER
    input.Body.LaunchTemplateData.SecurityGroupId[_] == STRING
    input.Body.LaunchTemplateData.SecurityGroup[_] == STRING
    input.Body.LaunchTemplateData.InstanceMarketOptions.MarketType == enum_MarketType[_]
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.MaxPrice == STRING
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.SpotInstanceType == enum_SpotInstanceType[_]
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.BlockDurationMinutes == INTEGER
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.ValidUntil == TIMESTAMP
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.InstanceInterruptionBehavior == enum_InstanceInterruptionBehavior[_]
    input.Body.LaunchTemplateData.CreditSpecification.CpuCredits == STRING
    input.Body.LaunchTemplateData.CpuOptions.CoreCount == INTEGER
    input.Body.LaunchTemplateData.CpuOptions.ThreadsPerCore == INTEGER
    input.Body.LaunchTemplateData.CpuOptions.AmdSevSnp == enum_AmdSevSnpSpecification[_]
    input.Body.LaunchTemplateData.CapacityReservationSpecification.CapacityReservationPreference == enum_CapacityReservationPreference[_]
    input.Body.LaunchTemplateData.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationId == STRING
    input.Body.LaunchTemplateData.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn == STRING
    input.Body.LaunchTemplateData.LicenseSpecification[_].LicenseConfigurationArn == STRING
    input.Body.LaunchTemplateData.HibernationOptions.Configured == BOOLEAN
    input.Body.LaunchTemplateData.MetadataOptions.HttpTokens == enum_LaunchTemplateHttpTokensState[_]
    input.Body.LaunchTemplateData.MetadataOptions.HttpPutResponseHopLimit == INTEGER
    input.Body.LaunchTemplateData.MetadataOptions.HttpEndpoint == enum_LaunchTemplateInstanceMetadataEndpointState[_]
    input.Body.LaunchTemplateData.MetadataOptions.HttpProtocolIpv6 == enum_LaunchTemplateInstanceMetadataProtocolIpv6[_]
    input.Body.LaunchTemplateData.MetadataOptions.InstanceMetadataTags == enum_LaunchTemplateInstanceMetadataTagsState[_]
    input.Body.LaunchTemplateData.EnclaveOptions.Enabled == BOOLEAN
    input.Body.LaunchTemplateData.InstanceRequirements.VCpuCount.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.VCpuCount.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.MemoryMiB.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.MemoryMiB.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.CpuManufacturer[_] == enum_CpuManufacturer[_]
    input.Body.LaunchTemplateData.InstanceRequirements.MemoryGiBPerVCpu.Min == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.MemoryGiBPerVCpu.Max == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.ExcludedInstanceType[_] == STRING
    input.Body.LaunchTemplateData.InstanceRequirements.InstanceGeneration[_] == enum_InstanceGeneration[_]
    input.Body.LaunchTemplateData.InstanceRequirements.SpotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.OnDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.BareMetal == enum_BareMetal[_]
    input.Body.LaunchTemplateData.InstanceRequirements.BurstablePerformance == enum_BurstablePerformance[_]
    input.Body.LaunchTemplateData.InstanceRequirements.RequireHibernateSupport == BOOLEAN
    input.Body.LaunchTemplateData.InstanceRequirements.NetworkInterfaceCount.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.NetworkInterfaceCount.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.LocalStorage == enum_LocalStorage[_]
    input.Body.LaunchTemplateData.InstanceRequirements.LocalStorageType[_] == enum_LocalStorageType[_]
    input.Body.LaunchTemplateData.InstanceRequirements.TotalLocalStorageGB.Min == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.TotalLocalStorageGB.Max == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.BaselineEbsBandwidthMbps.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.BaselineEbsBandwidthMbps.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorType[_] == enum_AcceleratorType[_]
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorCount.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorCount.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorManufacturer[_] == enum_AcceleratorManufacturer[_]
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorName[_] == enum_AcceleratorName[_]
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorTotalMemoryMiB.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorTotalMemoryMiB.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.NetworkBandwidthGbps.Min == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.NetworkBandwidthGbps.Max == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.AllowedInstanceType[_] == STRING
    input.Body.LaunchTemplateData.InstanceRequirements.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.LaunchTemplateData.PrivateDnsNameOptions.HostnameType == enum_HostnameType[_]
    input.Body.LaunchTemplateData.PrivateDnsNameOptions.EnableResourceNameDnsARecord == BOOLEAN
    input.Body.LaunchTemplateData.PrivateDnsNameOptions.EnableResourceNameDnsAAAARecord == BOOLEAN
    input.Body.LaunchTemplateData.MaintenanceOptions.AutoRecovery == enum_LaunchTemplateAutoRecoveryState[_]
    input.Body.LaunchTemplateData.DisableApiStop == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLaunchTemplateVersion

enum_AcceleratorManufacturer := [ "amazon-web-services", "amd", "nvidia", "xilinx", "habana" ]
enum_AcceleratorName := [ "a100", "inferentia", "k520", "k80", "m60", "radeon-pro-v520", "t4", "vu9p", "v100", "a10g", "h100", "t4g" ]
enum_AcceleratorType := [ "gpu", "fpga", "inference" ]
enum_AmdSevSnpSpecification := [ "enabled", "disabled" ]
enum_BareMetal := [ "included", "required", "excluded" ]
enum_BurstablePerformance := [ "included", "required", "excluded" ]
enum_CapacityReservationPreference := [ "open", "none" ]
enum_CpuManufacturer := [ "intel", "amd", "amazon-web-services" ]
enum_HostnameType := [ "ip-name", "resource-name" ]
enum_InstanceGeneration := [ "current", "previous" ]
enum_InstanceInterruptionBehavior := [ "hibernate", "stop", "terminate" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_LaunchTemplateAutoRecoveryState := [ "default", "disabled" ]
enum_LaunchTemplateHttpTokensState := [ "optional", "required" ]
enum_LaunchTemplateInstanceMetadataEndpointState := [ "disabled", "enabled" ]
enum_LaunchTemplateInstanceMetadataProtocolIpv6 := [ "disabled", "enabled" ]
enum_LaunchTemplateInstanceMetadataTagsState := [ "disabled", "enabled" ]
enum_LocalStorage := [ "included", "required", "excluded" ]
enum_LocalStorageType := [ "hdd", "ssd" ]
enum_MarketType := [ "spot", "capacity-block" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_ShutdownBehavior := [ "stop", "terminate" ]
enum_SpotInstanceType := [ "one-time", "persistent" ]
enum_Tenancy := [ "default", "dedicated", "host" ]
enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.LaunchTemplateId == STRING
    input.Body.LaunchTemplateName == STRING
    input.Body.SourceVersion == STRING
    input.Body.VersionDescription == STRING
    input.Body.LaunchTemplateData.KernelId == STRING
    input.Body.LaunchTemplateData.EbsOptimized == BOOLEAN
    input.Body.LaunchTemplateData.IamInstanceProfile.Arn == STRING
    input.Body.LaunchTemplateData.IamInstanceProfile.Name == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].DeviceName == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].VirtualName == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.Encrypted == BOOLEAN
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.DeleteOnTermination == BOOLEAN
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.Iops == INTEGER
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.KmsKeyId == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.SnapshotId == STRING
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.VolumeSize == INTEGER
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.VolumeType == enum_VolumeType[_]
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].Ebs.Throughput == INTEGER
    input.Body.LaunchTemplateData.BlockDeviceMapping[_].NoDevice == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].AssociateCarrierIpAddress == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].AssociatePublicIpAddress == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].DeleteOnTermination == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].Description == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].DeviceIndex == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].SecurityGroupId[_] == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].InterfaceType == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv6AddressCount == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv6Addresses[_].Ipv6Address == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].NetworkInterfaceId == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].PrivateIpAddress == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].PrivateIpAddresses[_].primary == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].PrivateIpAddresses[_].privateIpAddress == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].SecondaryPrivateIpAddressCount == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].SubnetId == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].NetworkCardIndex == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv4Prefix[_].Ipv4Prefix == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv4PrefixCount == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv6Prefix[_].Ipv6Prefix == STRING
    input.Body.LaunchTemplateData.NetworkInterface[_].Ipv6PrefixCount == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].PrimaryIpv6 == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].EnaSrdSpecification.EnaSrdEnabled == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled == BOOLEAN
    input.Body.LaunchTemplateData.NetworkInterface[_].ConnectionTrackingSpecification.TcpEstablishedTimeout == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].ConnectionTrackingSpecification.UdpStreamTimeout == INTEGER
    input.Body.LaunchTemplateData.NetworkInterface[_].ConnectionTrackingSpecification.UdpTimeout == INTEGER
    input.Body.LaunchTemplateData.ImageId == STRING
    input.Body.LaunchTemplateData.InstanceType == enum_InstanceType[_]
    input.Body.LaunchTemplateData.KeyName == STRING
    input.Body.LaunchTemplateData.Monitoring.Enabled == BOOLEAN
    input.Body.LaunchTemplateData.Placement.AvailabilityZone == STRING
    input.Body.LaunchTemplateData.Placement.Affinity == STRING
    input.Body.LaunchTemplateData.Placement.GroupName == STRING
    input.Body.LaunchTemplateData.Placement.HostId == STRING
    input.Body.LaunchTemplateData.Placement.Tenancy == enum_Tenancy[_]
    input.Body.LaunchTemplateData.Placement.SpreadDomain == STRING
    input.Body.LaunchTemplateData.Placement.HostResourceGroupArn == STRING
    input.Body.LaunchTemplateData.Placement.PartitionNumber == INTEGER
    input.Body.LaunchTemplateData.Placement.GroupId == STRING
    input.Body.LaunchTemplateData.RamDiskId == STRING
    input.Body.LaunchTemplateData.DisableApiTermination == BOOLEAN
    input.Body.LaunchTemplateData.InstanceInitiatedShutdownBehavior == enum_ShutdownBehavior[_]
    input.Body.LaunchTemplateData.UserData == STRING
    input.Body.LaunchTemplateData.TagSpecification[_].ResourceType == enum_ResourceType[_]
    input.Body.LaunchTemplateData.TagSpecification[_].Tag[_].key == STRING
    input.Body.LaunchTemplateData.TagSpecification[_].Tag[_].value == STRING
    input.Body.LaunchTemplateData.ElasticGpuSpecification[_].Type == STRING
    input.Body.LaunchTemplateData.ElasticInferenceAccelerator[_].Type == STRING
    input.Body.LaunchTemplateData.ElasticInferenceAccelerator[_].Count == INTEGER
    input.Body.LaunchTemplateData.SecurityGroupId[_] == STRING
    input.Body.LaunchTemplateData.SecurityGroup[_] == STRING
    input.Body.LaunchTemplateData.InstanceMarketOptions.MarketType == enum_MarketType[_]
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.MaxPrice == STRING
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.SpotInstanceType == enum_SpotInstanceType[_]
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.BlockDurationMinutes == INTEGER
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.ValidUntil == TIMESTAMP
    input.Body.LaunchTemplateData.InstanceMarketOptions.SpotOptions.InstanceInterruptionBehavior == enum_InstanceInterruptionBehavior[_]
    input.Body.LaunchTemplateData.CreditSpecification.CpuCredits == STRING
    input.Body.LaunchTemplateData.CpuOptions.CoreCount == INTEGER
    input.Body.LaunchTemplateData.CpuOptions.ThreadsPerCore == INTEGER
    input.Body.LaunchTemplateData.CpuOptions.AmdSevSnp == enum_AmdSevSnpSpecification[_]
    input.Body.LaunchTemplateData.CapacityReservationSpecification.CapacityReservationPreference == enum_CapacityReservationPreference[_]
    input.Body.LaunchTemplateData.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationId == STRING
    input.Body.LaunchTemplateData.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn == STRING
    input.Body.LaunchTemplateData.LicenseSpecification[_].LicenseConfigurationArn == STRING
    input.Body.LaunchTemplateData.HibernationOptions.Configured == BOOLEAN
    input.Body.LaunchTemplateData.MetadataOptions.HttpTokens == enum_LaunchTemplateHttpTokensState[_]
    input.Body.LaunchTemplateData.MetadataOptions.HttpPutResponseHopLimit == INTEGER
    input.Body.LaunchTemplateData.MetadataOptions.HttpEndpoint == enum_LaunchTemplateInstanceMetadataEndpointState[_]
    input.Body.LaunchTemplateData.MetadataOptions.HttpProtocolIpv6 == enum_LaunchTemplateInstanceMetadataProtocolIpv6[_]
    input.Body.LaunchTemplateData.MetadataOptions.InstanceMetadataTags == enum_LaunchTemplateInstanceMetadataTagsState[_]
    input.Body.LaunchTemplateData.EnclaveOptions.Enabled == BOOLEAN
    input.Body.LaunchTemplateData.InstanceRequirements.VCpuCount.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.VCpuCount.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.MemoryMiB.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.MemoryMiB.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.CpuManufacturer[_] == enum_CpuManufacturer[_]
    input.Body.LaunchTemplateData.InstanceRequirements.MemoryGiBPerVCpu.Min == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.MemoryGiBPerVCpu.Max == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.ExcludedInstanceType[_] == STRING
    input.Body.LaunchTemplateData.InstanceRequirements.InstanceGeneration[_] == enum_InstanceGeneration[_]
    input.Body.LaunchTemplateData.InstanceRequirements.SpotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.OnDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.BareMetal == enum_BareMetal[_]
    input.Body.LaunchTemplateData.InstanceRequirements.BurstablePerformance == enum_BurstablePerformance[_]
    input.Body.LaunchTemplateData.InstanceRequirements.RequireHibernateSupport == BOOLEAN
    input.Body.LaunchTemplateData.InstanceRequirements.NetworkInterfaceCount.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.NetworkInterfaceCount.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.LocalStorage == enum_LocalStorage[_]
    input.Body.LaunchTemplateData.InstanceRequirements.LocalStorageType[_] == enum_LocalStorageType[_]
    input.Body.LaunchTemplateData.InstanceRequirements.TotalLocalStorageGB.Min == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.TotalLocalStorageGB.Max == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.BaselineEbsBandwidthMbps.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.BaselineEbsBandwidthMbps.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorType[_] == enum_AcceleratorType[_]
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorCount.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorCount.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorManufacturer[_] == enum_AcceleratorManufacturer[_]
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorName[_] == enum_AcceleratorName[_]
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorTotalMemoryMiB.Min == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.AcceleratorTotalMemoryMiB.Max == INTEGER
    input.Body.LaunchTemplateData.InstanceRequirements.NetworkBandwidthGbps.Min == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.NetworkBandwidthGbps.Max == DOUBLE
    input.Body.LaunchTemplateData.InstanceRequirements.AllowedInstanceType[_] == STRING
    input.Body.LaunchTemplateData.InstanceRequirements.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.LaunchTemplateData.PrivateDnsNameOptions.HostnameType == enum_HostnameType[_]
    input.Body.LaunchTemplateData.PrivateDnsNameOptions.EnableResourceNameDnsARecord == BOOLEAN
    input.Body.LaunchTemplateData.PrivateDnsNameOptions.EnableResourceNameDnsAAAARecord == BOOLEAN
    input.Body.LaunchTemplateData.MaintenanceOptions.AutoRecovery == enum_LaunchTemplateAutoRecoveryState[_]
    input.Body.LaunchTemplateData.DisableApiStop == BOOLEAN
    input.Body.ResolveAlias == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocalGatewayRoute

valid {
    input.Body.DestinationCidrBlock == STRING
    input.Body.LocalGatewayRouteTableId == STRING
    input.Body.LocalGatewayVirtualInterfaceGroupId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.NetworkInterfaceId == STRING
    input.Body.DestinationPrefixListId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocalGatewayRouteTable

enum_LocalGatewayRouteTableMode := [ "direct-vpc-routing", "coip" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.LocalGatewayId == STRING
    input.Body.Mode == enum_LocalGatewayRouteTableMode[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.LocalGatewayRouteTableId == STRING
    input.Body.LocalGatewayVirtualInterfaceGroupId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocalGatewayRouteTableVpcAssociation

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.LocalGatewayRouteTableId == STRING
    input.Body.VpcId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateManagedPrefixList

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.PrefixListName == STRING
    input.Body.Entry[_].Cidr == STRING
    input.Body.Entry[_].Description == STRING
    input.Body.MaxEntries == INTEGER
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.AddressFamily == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateNatGateway

enum_ConnectivityType := [ "private", "public" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.AllocationId == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.SubnetId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ConnectivityType == enum_ConnectivityType[_]
    input.Body.PrivateIpAddress == STRING
    input.Body.SecondaryAllocationId[_] == STRING
    input.Body.SecondaryPrivateIpAddress[_] == STRING
    input.Body.SecondaryPrivateIpAddressCount == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateNetworkAcl

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.vpcId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateNetworkAclEntry

enum_RuleAction := [ "allow", "deny" ]

valid {
    input.Body.cidrBlock == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.egress == BOOLEAN
    input.Body.Icmp.code == INTEGER
    input.Body.Icmp.type == INTEGER
    input.Body.ipv6CidrBlock == STRING
    input.Body.networkAclId == STRING
    input.Body.portRange.from == INTEGER
    input.Body.portRange.to == INTEGER
    input.Body.protocol == STRING
    input.Body.ruleAction == enum_RuleAction[_]
    input.Body.ruleNumber == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateNetworkInsightsAccessScope

enum_Protocol := [ "tcp", "udp" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.MatchPath[_].Source.PacketHeaderStatement.SourceAddress[_] == STRING
    input.Body.MatchPath[_].Source.PacketHeaderStatement.DestinationAddress[_] == STRING
    input.Body.MatchPath[_].Source.PacketHeaderStatement.SourcePort[_] == STRING
    input.Body.MatchPath[_].Source.PacketHeaderStatement.DestinationPort[_] == STRING
    input.Body.MatchPath[_].Source.PacketHeaderStatement.SourcePrefixList[_] == STRING
    input.Body.MatchPath[_].Source.PacketHeaderStatement.DestinationPrefixList[_] == STRING
    input.Body.MatchPath[_].Source.PacketHeaderStatement.Protocol[_] == enum_Protocol[_]
    input.Body.MatchPath[_].Source.ResourceStatement.Resource[_] == STRING
    input.Body.MatchPath[_].Source.ResourceStatement.ResourceType[_] == STRING
    input.Body.MatchPath[_].Destination.PacketHeaderStatement.SourceAddress[_] == STRING
    input.Body.MatchPath[_].Destination.PacketHeaderStatement.DestinationAddress[_] == STRING
    input.Body.MatchPath[_].Destination.PacketHeaderStatement.SourcePort[_] == STRING
    input.Body.MatchPath[_].Destination.PacketHeaderStatement.DestinationPort[_] == STRING
    input.Body.MatchPath[_].Destination.PacketHeaderStatement.SourcePrefixList[_] == STRING
    input.Body.MatchPath[_].Destination.PacketHeaderStatement.DestinationPrefixList[_] == STRING
    input.Body.MatchPath[_].Destination.PacketHeaderStatement.Protocol[_] == enum_Protocol[_]
    input.Body.MatchPath[_].Destination.ResourceStatement.Resource[_] == STRING
    input.Body.MatchPath[_].Destination.ResourceStatement.ResourceType[_] == STRING
    input.Body.MatchPath[_].ThroughResource[_].ResourceStatement.Resource[_] == STRING
    input.Body.MatchPath[_].ThroughResource[_].ResourceStatement.ResourceType[_] == STRING
    input.Body.ExcludePath[_].Source.PacketHeaderStatement.SourceAddress[_] == STRING
    input.Body.ExcludePath[_].Source.PacketHeaderStatement.DestinationAddress[_] == STRING
    input.Body.ExcludePath[_].Source.PacketHeaderStatement.SourcePort[_] == STRING
    input.Body.ExcludePath[_].Source.PacketHeaderStatement.DestinationPort[_] == STRING
    input.Body.ExcludePath[_].Source.PacketHeaderStatement.SourcePrefixList[_] == STRING
    input.Body.ExcludePath[_].Source.PacketHeaderStatement.DestinationPrefixList[_] == STRING
    input.Body.ExcludePath[_].Source.PacketHeaderStatement.Protocol[_] == enum_Protocol[_]
    input.Body.ExcludePath[_].Source.ResourceStatement.Resource[_] == STRING
    input.Body.ExcludePath[_].Source.ResourceStatement.ResourceType[_] == STRING
    input.Body.ExcludePath[_].Destination.PacketHeaderStatement.SourceAddress[_] == STRING
    input.Body.ExcludePath[_].Destination.PacketHeaderStatement.DestinationAddress[_] == STRING
    input.Body.ExcludePath[_].Destination.PacketHeaderStatement.SourcePort[_] == STRING
    input.Body.ExcludePath[_].Destination.PacketHeaderStatement.DestinationPort[_] == STRING
    input.Body.ExcludePath[_].Destination.PacketHeaderStatement.SourcePrefixList[_] == STRING
    input.Body.ExcludePath[_].Destination.PacketHeaderStatement.DestinationPrefixList[_] == STRING
    input.Body.ExcludePath[_].Destination.PacketHeaderStatement.Protocol[_] == enum_Protocol[_]
    input.Body.ExcludePath[_].Destination.ResourceStatement.Resource[_] == STRING
    input.Body.ExcludePath[_].Destination.ResourceStatement.ResourceType[_] == STRING
    input.Body.ExcludePath[_].ThroughResource[_].ResourceStatement.Resource[_] == STRING
    input.Body.ExcludePath[_].ThroughResource[_].ResourceStatement.ResourceType[_] == STRING
    input.Body.ClientToken == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateNetworkInsightsPath

enum_Protocol := [ "tcp", "udp" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.SourceIp == STRING
    input.Body.DestinationIp == STRING
    input.Body.Source == STRING
    input.Body.Destination == STRING
    input.Body.Protocol == enum_Protocol[_]
    input.Body.DestinationPort == INTEGER
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.FilterAtSource.SourceAddress == STRING
    input.Body.FilterAtSource.SourcePortRange.FromPort == INTEGER
    input.Body.FilterAtSource.SourcePortRange.ToPort == INTEGER
    input.Body.FilterAtSource.DestinationAddress == STRING
    input.Body.FilterAtSource.DestinationPortRange.FromPort == INTEGER
    input.Body.FilterAtSource.DestinationPortRange.ToPort == INTEGER
    input.Body.FilterAtDestination.SourceAddress == STRING
    input.Body.FilterAtDestination.SourcePortRange.FromPort == INTEGER
    input.Body.FilterAtDestination.SourcePortRange.ToPort == INTEGER
    input.Body.FilterAtDestination.DestinationAddress == STRING
    input.Body.FilterAtDestination.DestinationPortRange.FromPort == INTEGER
    input.Body.FilterAtDestination.DestinationPortRange.ToPort == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateNetworkInterface

enum_NetworkInterfaceCreationType := [ "efa", "branch", "trunk" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.description == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.SecurityGroupId[_] == STRING
    input.Body.ipv6AddressCount == INTEGER
    input.Body.ipv6Addresses[_].ipv6Address == STRING
    input.Body.ipv6Addresses[_].isPrimaryIpv6 == BOOLEAN
    input.Body.privateIpAddress == STRING
    input.Body.privateIpAddresses[_].primary == BOOLEAN
    input.Body.privateIpAddresses[_].privateIpAddress == STRING
    input.Body.secondaryPrivateIpAddressCount == INTEGER
    input.Body.Ipv4Prefix[_].Ipv4Prefix == STRING
    input.Body.Ipv4PrefixCount == INTEGER
    input.Body.Ipv6Prefix[_].Ipv6Prefix == STRING
    input.Body.Ipv6PrefixCount == INTEGER
    input.Body.InterfaceType == enum_NetworkInterfaceCreationType[_]
    input.Body.subnetId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.Body.EnablePrimaryIpv6 == BOOLEAN
    input.Body.ConnectionTrackingSpecification.TcpEstablishedTimeout == INTEGER
    input.Body.ConnectionTrackingSpecification.UdpStreamTimeout == INTEGER
    input.Body.ConnectionTrackingSpecification.UdpTimeout == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateNetworkInterfacePermission

enum_InterfacePermissionType := [ "INSTANCE-ATTACH", "EIP-ASSOCIATE" ]

valid {
    input.Body.NetworkInterfaceId == STRING
    input.Body.AwsAccountId == STRING
    input.Body.AwsService == STRING
    input.Body.Permission == enum_InterfacePermissionType[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePlacementGroup

enum_PlacementStrategy := [ "cluster", "spread", "partition" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_SpreadLevel := [ "host", "rack" ]

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.groupName == STRING
    input.Body.strategy == enum_PlacementStrategy[_]
    input.Body.PartitionCount == INTEGER
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.SpreadLevel == enum_SpreadLevel[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePublicIpv4Pool

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateReplaceRootVolumeTask

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.SnapshotId == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ImageId == STRING
    input.Body.DeleteReplacedRootVolume == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateReservedInstancesListing

enum_CurrencyCodeValues := [ "USD" ]

valid {
    input.Body.clientToken == STRING
    input.Body.instanceCount == INTEGER
    input.Body.priceSchedules[_].currencyCode == enum_CurrencyCodeValues[_]
    input.Body.priceSchedules[_].price == DOUBLE
    input.Body.priceSchedules[_].term == LONG
    input.Body.reservedInstancesId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRestoreImageTask

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Bucket == STRING
    input.Body.ObjectKey == STRING
    input.Body.Name == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRoute

valid {
    input.Body.destinationCidrBlock == STRING
    input.Body.destinationIpv6CidrBlock == STRING
    input.Body.DestinationPrefixListId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.VpcEndpointId == STRING
    input.Body.egressOnlyInternetGatewayId == STRING
    input.Body.gatewayId == STRING
    input.Body.instanceId == STRING
    input.Body.natGatewayId == STRING
    input.Body.TransitGatewayId == STRING
    input.Body.LocalGatewayId == STRING
    input.Body.CarrierGatewayId == STRING
    input.Body.networkInterfaceId == STRING
    input.Body.routeTableId == STRING
    input.Body.vpcPeeringConnectionId == STRING
    input.Body.CoreNetworkArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRouteTable

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.vpcId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSecurityGroup

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.GroupDescription == STRING
    input.Body.GroupName == STRING
    input.Body.VpcId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSnapshot

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Description == STRING
    input.Body.OutpostArn == STRING
    input.Body.VolumeId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSnapshots

enum_CopyTagsFromSource := [ "volume" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Description == STRING
    input.Body.InstanceSpecification.InstanceId == STRING
    input.Body.InstanceSpecification.ExcludeBootVolume == BOOLEAN
    input.Body.InstanceSpecification.ExcludeDataVolumeId[_] == STRING
    input.Body.OutpostArn == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.CopyTagsFromSource == enum_CopyTagsFromSource[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSpotDatafeedSubscription

valid {
    input.Body.bucket == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.prefix == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateStoreImageTask

valid {
    input.Body.ImageId == STRING
    input.Body.Bucket == STRING
    input.Body.S3ObjectTag[_].Key == STRING
    input.Body.S3ObjectTag[_].Value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSubnet

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.AvailabilityZone == STRING
    input.Body.AvailabilityZoneId == STRING
    input.Body.CidrBlock == STRING
    input.Body.Ipv6CidrBlock == STRING
    input.Body.OutpostArn == STRING
    input.Body.VpcId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.Ipv6Native == BOOLEAN
    input.Body.Ipv4IpamPoolId == STRING
    input.Body.Ipv4NetmaskLength == INTEGER
    input.Body.Ipv6IpamPoolId == STRING
    input.Body.Ipv6NetmaskLength == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSubnetCidrReservation

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_SubnetCidrReservationType := [ "prefix", "explicit" ]

valid {
    input.Body.SubnetId == STRING
    input.Body.Cidr == STRING
    input.Body.ReservationType == enum_SubnetCidrReservationType[_]
    input.Body.Description == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTags

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.ResourceId[_] == STRING
    input.Body.Tag[_].key == STRING
    input.Body.Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTrafficMirrorFilter

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Description == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTrafficMirrorFilterRule

enum_TrafficDirection := [ "ingress", "egress" ]
enum_TrafficMirrorRuleAction := [ "accept", "reject" ]

valid {
    input.Body.TrafficMirrorFilterId == STRING
    input.Body.TrafficDirection == enum_TrafficDirection[_]
    input.Body.RuleNumber == INTEGER
    input.Body.RuleAction == enum_TrafficMirrorRuleAction[_]
    input.Body.DestinationPortRange.FromPort == INTEGER
    input.Body.DestinationPortRange.ToPort == INTEGER
    input.Body.SourcePortRange.FromPort == INTEGER
    input.Body.SourcePortRange.ToPort == INTEGER
    input.Body.Protocol == INTEGER
    input.Body.DestinationCidrBlock == STRING
    input.Body.SourceCidrBlock == STRING
    input.Body.Description == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTrafficMirrorSession

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.NetworkInterfaceId == STRING
    input.Body.TrafficMirrorTargetId == STRING
    input.Body.TrafficMirrorFilterId == STRING
    input.Body.PacketLength == INTEGER
    input.Body.SessionNumber == INTEGER
    input.Body.VirtualNetworkId == INTEGER
    input.Body.Description == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTrafficMirrorTarget

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.NetworkInterfaceId == STRING
    input.Body.NetworkLoadBalancerArn == STRING
    input.Body.Description == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.GatewayLoadBalancerEndpointId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGateway

enum_AutoAcceptSharedAttachmentsValue := [ "enable", "disable" ]
enum_DefaultRouteTableAssociationValue := [ "enable", "disable" ]
enum_DefaultRouteTablePropagationValue := [ "enable", "disable" ]
enum_DnsSupportValue := [ "enable", "disable" ]
enum_MulticastSupportValue := [ "enable", "disable" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_SecurityGroupReferencingSupportValue := [ "enable", "disable" ]
enum_VpnEcmpSupportValue := [ "enable", "disable" ]

valid {
    input.Body.Description == STRING
    input.Body.Options.AmazonSideAsn == LONG
    input.Body.Options.AutoAcceptSharedAttachments == enum_AutoAcceptSharedAttachmentsValue[_]
    input.Body.Options.DefaultRouteTableAssociation == enum_DefaultRouteTableAssociationValue[_]
    input.Body.Options.DefaultRouteTablePropagation == enum_DefaultRouteTablePropagationValue[_]
    input.Body.Options.VpnEcmpSupport == enum_VpnEcmpSupportValue[_]
    input.Body.Options.DnsSupport == enum_DnsSupportValue[_]
    input.Body.Options.SecurityGroupReferencingSupport == enum_SecurityGroupReferencingSupportValue[_]
    input.Body.Options.MulticastSupport == enum_MulticastSupportValue[_]
    input.Body.Options.TransitGatewayCidrBlocks[_] == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayConnect

enum_ProtocolValue := [ "gre" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.TransportTransitGatewayAttachmentId == STRING
    input.Body.Options.Protocol == enum_ProtocolValue[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayConnectPeer

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.TransitGatewayAddress == STRING
    input.Body.PeerAddress == STRING
    input.Body.BgpOptions.PeerAsn == LONG
    input.Body.InsideCidrBlocks[_] == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayMulticastDomain

enum_AutoAcceptSharedAssociationsValue := [ "enable", "disable" ]
enum_Igmpv2SupportValue := [ "enable", "disable" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_StaticSourcesSupportValue := [ "enable", "disable" ]

valid {
    input.Body.TransitGatewayId == STRING
    input.Body.Options.Igmpv2Support == enum_Igmpv2SupportValue[_]
    input.Body.Options.StaticSourcesSupport == enum_StaticSourcesSupportValue[_]
    input.Body.Options.AutoAcceptSharedAssociations == enum_AutoAcceptSharedAssociationsValue[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayPeeringAttachment

enum_DynamicRoutingValue := [ "enable", "disable" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.TransitGatewayId == STRING
    input.Body.PeerTransitGatewayId == STRING
    input.Body.PeerAccountId == STRING
    input.Body.PeerRegion == STRING
    input.Body.Options.DynamicRouting == enum_DynamicRoutingValue[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayPolicyTable

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.TransitGatewayId == STRING
    input.Body.TagSpecifications[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecifications[_].Tag[_].key == STRING
    input.Body.TagSpecifications[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayPrefixListReference

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.PrefixListId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.Blackhole == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayRoute

valid {
    input.Body.DestinationCidrBlock == STRING
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.Blackhole == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayRouteTable

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.TransitGatewayId == STRING
    input.Body.TagSpecifications[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecifications[_].Tag[_].key == STRING
    input.Body.TagSpecifications[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayRouteTableAnnouncement

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.PeeringAttachmentId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTransitGatewayVpcAttachment

enum_ApplianceModeSupportValue := [ "enable", "disable" ]
enum_DnsSupportValue := [ "enable", "disable" ]
enum_Ipv6SupportValue := [ "enable", "disable" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_SecurityGroupReferencingSupportValue := [ "enable", "disable" ]

valid {
    input.Body.TransitGatewayId == STRING
    input.Body.VpcId == STRING
    input.Body.SubnetIds[_] == STRING
    input.Body.Options.DnsSupport == enum_DnsSupportValue[_]
    input.Body.Options.SecurityGroupReferencingSupport == enum_SecurityGroupReferencingSupportValue[_]
    input.Body.Options.Ipv6Support == enum_Ipv6SupportValue[_]
    input.Body.Options.ApplianceModeSupport == enum_ApplianceModeSupportValue[_]
    input.Body.TagSpecifications[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecifications[_].Tag[_].key == STRING
    input.Body.TagSpecifications[_].Tag[_].value == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVerifiedAccessEndpoint

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_VerifiedAccessEndpointAttachmentType := [ "vpc" ]
enum_VerifiedAccessEndpointProtocol := [ "http", "https" ]
enum_VerifiedAccessEndpointType := [ "load-balancer", "network-interface" ]

valid {
    input.Body.VerifiedAccessGroupId == STRING
    input.Body.EndpointType == enum_VerifiedAccessEndpointType[_]
    input.Body.AttachmentType == enum_VerifiedAccessEndpointAttachmentType[_]
    input.Body.DomainCertificateArn == STRING
    input.Body.ApplicationDomain == STRING
    input.Body.EndpointDomainPrefix == STRING
    input.Body.SecurityGroupId[_] == STRING
    input.Body.LoadBalancerOptions.Protocol == enum_VerifiedAccessEndpointProtocol[_]
    input.Body.LoadBalancerOptions.Port == INTEGER
    input.Body.LoadBalancerOptions.LoadBalancerArn == STRING
    input.Body.LoadBalancerOptions.SubnetId[_] == STRING
    input.Body.NetworkInterfaceOptions.NetworkInterfaceId == STRING
    input.Body.NetworkInterfaceOptions.Protocol == enum_VerifiedAccessEndpointProtocol[_]
    input.Body.NetworkInterfaceOptions.Port == INTEGER
    input.Body.Description == STRING
    input.Body.PolicyDocument == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.SseSpecification.CustomerManagedKeyEnabled == BOOLEAN
    input.Body.SseSpecification.KmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVerifiedAccessGroup

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.Description == STRING
    input.Body.PolicyDocument == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.SseSpecification.CustomerManagedKeyEnabled == BOOLEAN
    input.Body.SseSpecification.KmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVerifiedAccessInstance

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Description == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.FIPSEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVerifiedAccessTrustProvider

enum_DeviceTrustProviderType := [ "jamf", "crowdstrike", "jumpcloud" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_TrustProviderType := [ "user", "device" ]
enum_UserTrustProviderType := [ "iam-identity-center", "oidc" ]

valid {
    input.Body.TrustProviderType == enum_TrustProviderType[_]
    input.Body.UserTrustProviderType == enum_UserTrustProviderType[_]
    input.Body.DeviceTrustProviderType == enum_DeviceTrustProviderType[_]
    input.Body.OidcOptions.Issuer == STRING
    input.Body.OidcOptions.AuthorizationEndpoint == STRING
    input.Body.OidcOptions.TokenEndpoint == STRING
    input.Body.OidcOptions.UserInfoEndpoint == STRING
    input.Body.OidcOptions.ClientId == STRING
    input.Body.OidcOptions.ClientSecret == STRING
    input.Body.OidcOptions.Scope == STRING
    input.Body.DeviceOptions.TenantId == STRING
    input.Body.DeviceOptions.PublicSigningKeyUrl == STRING
    input.Body.PolicyReferenceName == STRING
    input.Body.Description == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.SseSpecification.CustomerManagedKeyEnabled == BOOLEAN
    input.Body.SseSpecification.KmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVolume

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.AvailabilityZone == STRING
    input.Body.encrypted == BOOLEAN
    input.Body.Iops == INTEGER
    input.Body.KmsKeyId == STRING
    input.Body.OutpostArn == STRING
    input.Body.Size == INTEGER
    input.Body.SnapshotId == STRING
    input.Body.VolumeType == enum_VolumeType[_]
    input.Body.dryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.MultiAttachEnabled == BOOLEAN
    input.Body.Throughput == INTEGER
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVpc

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_Tenancy := [ "default", "dedicated", "host" ]

valid {
    input.Body.CidrBlock == STRING
    input.Body.amazonProvidedIpv6CidrBlock == BOOLEAN
    input.Body.Ipv6Pool == STRING
    input.Body.Ipv6CidrBlock == STRING
    input.Body.Ipv4IpamPoolId == STRING
    input.Body.Ipv4NetmaskLength == INTEGER
    input.Body.Ipv6IpamPoolId == STRING
    input.Body.Ipv6NetmaskLength == INTEGER
    input.Body.dryRun == BOOLEAN
    input.Body.instanceTenancy == enum_Tenancy[_]
    input.Body.Ipv6CidrBlockNetworkBorderGroup == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVpcEndpoint

enum_DnsRecordIpType := [ "ipv4", "dualstack", "ipv6", "service-defined" ]
enum_IpAddressType := [ "ipv4", "dualstack", "ipv6" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_VpcEndpointType := [ "Interface", "Gateway", "GatewayLoadBalancer" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.VpcEndpointType == enum_VpcEndpointType[_]
    input.Body.VpcId == STRING
    input.Body.ServiceName == STRING
    input.Body.PolicyDocument == STRING
    input.Body.RouteTableId[_] == STRING
    input.Body.SubnetId[_] == STRING
    input.Body.SecurityGroupId[_] == STRING
    input.Body.IpAddressType == enum_IpAddressType[_]
    input.Body.DnsOptions.DnsRecordIpType == enum_DnsRecordIpType[_]
    input.Body.DnsOptions.PrivateDnsOnlyForInboundResolverEndpoint == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.PrivateDnsEnabled == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.SubnetConfiguration[_].SubnetId == STRING
    input.Body.SubnetConfiguration[_].Ipv4 == STRING
    input.Body.SubnetConfiguration[_].Ipv6 == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVpcEndpointConnectionNotification

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId == STRING
    input.Body.VpcEndpointId == STRING
    input.Body.ConnectionNotificationArn == STRING
    input.Body.ConnectionEvents[_] == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVpcEndpointServiceConfiguration

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.AcceptanceRequired == BOOLEAN
    input.Body.PrivateDnsName == STRING
    input.Body.NetworkLoadBalancerArn[_] == STRING
    input.Body.GatewayLoadBalancerArn[_] == STRING
    input.Body.SupportedIpAddressType[_] == STRING
    input.Body.ClientToken == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVpcPeeringConnection

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.peerOwnerId == STRING
    input.Body.peerVpcId == STRING
    input.Body.vpcId == STRING
    input.Body.PeerRegion == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVpnConnection

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_TunnelInsideIpVersion := [ "ipv4", "ipv6" ]

valid {
    input.Body.CustomerGatewayId == STRING
    input.Body.Type == STRING
    input.Body.VpnGatewayId == STRING
    input.Body.TransitGatewayId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.options.EnableAcceleration == BOOLEAN
    input.Body.options.staticRoutesOnly == BOOLEAN
    input.Body.options.TunnelInsideIpVersion == enum_TunnelInsideIpVersion[_]
    input.Body.options.TunnelOptions[_].TunnelInsideCidr == STRING
    input.Body.options.TunnelOptions[_].TunnelInsideIpv6Cidr == STRING
    input.Body.options.TunnelOptions[_].PreSharedKey == STRING
    input.Body.options.TunnelOptions[_].Phase1LifetimeSeconds == INTEGER
    input.Body.options.TunnelOptions[_].Phase2LifetimeSeconds == INTEGER
    input.Body.options.TunnelOptions[_].RekeyMarginTimeSeconds == INTEGER
    input.Body.options.TunnelOptions[_].RekeyFuzzPercentage == INTEGER
    input.Body.options.TunnelOptions[_].ReplayWindowSize == INTEGER
    input.Body.options.TunnelOptions[_].DPDTimeoutSeconds == INTEGER
    input.Body.options.TunnelOptions[_].DPDTimeoutAction == STRING
    input.Body.options.TunnelOptions[_].Phase1EncryptionAlgorithm[_].Value == STRING
    input.Body.options.TunnelOptions[_].Phase2EncryptionAlgorithm[_].Value == STRING
    input.Body.options.TunnelOptions[_].Phase1IntegrityAlgorithm[_].Value == STRING
    input.Body.options.TunnelOptions[_].Phase2IntegrityAlgorithm[_].Value == STRING
    input.Body.options.TunnelOptions[_].Phase1DHGroupNumber[_].Value == INTEGER
    input.Body.options.TunnelOptions[_].Phase2DHGroupNumber[_].Value == INTEGER
    input.Body.options.TunnelOptions[_].IKEVersion[_].Value == STRING
    input.Body.options.TunnelOptions[_].StartupAction == STRING
    input.Body.options.TunnelOptions[_].LogOptions.CloudWatchLogOptions.LogEnabled == BOOLEAN
    input.Body.options.TunnelOptions[_].LogOptions.CloudWatchLogOptions.LogGroupArn == STRING
    input.Body.options.TunnelOptions[_].LogOptions.CloudWatchLogOptions.LogOutputFormat == STRING
    input.Body.options.TunnelOptions[_].EnableTunnelLifecycleControl == BOOLEAN
    input.Body.options.LocalIpv4NetworkCidr == STRING
    input.Body.options.RemoteIpv4NetworkCidr == STRING
    input.Body.options.LocalIpv6NetworkCidr == STRING
    input.Body.options.RemoteIpv6NetworkCidr == STRING
    input.Body.options.OutsideIpAddressType == STRING
    input.Body.options.TransportTransitGatewayAttachmentId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVpnConnectionRoute

valid {
    input.Body.DestinationCidrBlock == STRING
    input.Body.VpnConnectionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVpnGateway

enum_GatewayType := [ "ipsec.1" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.AvailabilityZone == STRING
    input.Body.Type == enum_GatewayType[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.AmazonSideAsn == LONG
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCarrierGateway

valid {
    input.Body.CarrierGatewayId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteClientVpnEndpoint

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteClientVpnRoute

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.TargetVpcSubnetId == STRING
    input.Body.DestinationCidrBlock == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCoipCidr

valid {
    input.Body.Cidr == STRING
    input.Body.CoipPoolId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCoipPool

valid {
    input.Body.CoipPoolId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCustomerGateway

valid {
    input.Body.CustomerGatewayId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDhcpOptions

valid {
    input.Body.DhcpOptionsId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEgressOnlyInternetGateway

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.EgressOnlyInternetGatewayId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteFleets

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.FleetId[_] == STRING
    input.Body.TerminateInstances == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteFlowLogs

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.FlowLogId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteFpgaImage

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.FpgaImageId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteInstanceConnectEndpoint

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceConnectEndpointId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteInstanceEventWindow

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ForceDelete == BOOLEAN
    input.Body.InstanceEventWindowId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteInternetGateway

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.internetGatewayId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteIpam

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamId == STRING
    input.Body.Cascade == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteIpamPool

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.Cascade == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteIpamResourceDiscovery

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamResourceDiscoveryId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteIpamScope

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamScopeId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteKeyPair

valid {
    input.Body.KeyName == STRING
    input.Body.KeyPairId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLaunchTemplate

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.LaunchTemplateId == STRING
    input.Body.LaunchTemplateName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLaunchTemplateVersions

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.LaunchTemplateId == STRING
    input.Body.LaunchTemplateName == STRING
    input.Body.LaunchTemplateVersion[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLocalGatewayRoute

valid {
    input.Body.DestinationCidrBlock == STRING
    input.Body.LocalGatewayRouteTableId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.DestinationPrefixListId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLocalGatewayRouteTable

valid {
    input.Body.LocalGatewayRouteTableId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation

valid {
    input.Body.LocalGatewayRouteTableVirtualInterfaceGroupAssociationId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLocalGatewayRouteTableVpcAssociation

valid {
    input.Body.LocalGatewayRouteTableVpcAssociationId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteManagedPrefixList

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.PrefixListId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNatGateway

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.NatGatewayId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNetworkAcl

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.networkAclId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNetworkAclEntry

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.egress == BOOLEAN
    input.Body.networkAclId == STRING
    input.Body.ruleNumber == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNetworkInsightsAccessScope

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.NetworkInsightsAccessScopeId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNetworkInsightsAccessScopeAnalysis

valid {
    input.Body.NetworkInsightsAccessScopeAnalysisId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNetworkInsightsAnalysis

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.NetworkInsightsAnalysisId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNetworkInsightsPath

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.NetworkInsightsPathId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNetworkInterface

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.networkInterfaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNetworkInterfacePermission

valid {
    input.Body.NetworkInterfacePermissionId == STRING
    input.Body.Force == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePlacementGroup

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.groupName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePublicIpv4Pool

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.PoolId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteQueuedReservedInstances

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ReservedInstancesId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRoute

valid {
    input.Body.destinationCidrBlock == STRING
    input.Body.destinationIpv6CidrBlock == STRING
    input.Body.DestinationPrefixListId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.routeTableId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRouteTable

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.routeTableId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSecurityGroup

valid {
    input.Body.GroupId == STRING
    input.Body.GroupName == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSnapshot

valid {
    input.Body.SnapshotId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSpotDatafeedSubscription

valid {
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSubnet

valid {
    input.Body.SubnetId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSubnetCidrReservation

valid {
    input.Body.SubnetCidrReservationId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTags

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.resourceId[_] == STRING
    input.Body.tag[_].key == STRING
    input.Body.tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTrafficMirrorFilter

valid {
    input.Body.TrafficMirrorFilterId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTrafficMirrorFilterRule

valid {
    input.Body.TrafficMirrorFilterRuleId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTrafficMirrorSession

valid {
    input.Body.TrafficMirrorSessionId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTrafficMirrorTarget

valid {
    input.Body.TrafficMirrorTargetId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGateway

valid {
    input.Body.TransitGatewayId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayConnect

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayConnectPeer

valid {
    input.Body.TransitGatewayConnectPeerId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayMulticastDomain

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayPeeringAttachment

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayPolicyTable

valid {
    input.Body.TransitGatewayPolicyTableId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayPrefixListReference

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.PrefixListId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayRoute

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.DestinationCidrBlock == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayRouteTable

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayRouteTableAnnouncement

valid {
    input.Body.TransitGatewayRouteTableAnnouncementId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTransitGatewayVpcAttachment

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVerifiedAccessEndpoint

valid {
    input.Body.VerifiedAccessEndpointId == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVerifiedAccessGroup

valid {
    input.Body.VerifiedAccessGroupId == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVerifiedAccessInstance

valid {
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVerifiedAccessTrustProvider

valid {
    input.Body.VerifiedAccessTrustProviderId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVolume

valid {
    input.Body.VolumeId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVpc

valid {
    input.Body.VpcId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVpcEndpointConnectionNotifications

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ConnectionNotificationId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVpcEndpointServiceConfigurations

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVpcEndpoints

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.VpcEndpointId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVpcPeeringConnection

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.vpcPeeringConnectionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVpnConnection

valid {
    input.Body.VpnConnectionId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVpnConnectionRoute

valid {
    input.Body.DestinationCidrBlock == STRING
    input.Body.VpnConnectionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVpnGateway

valid {
    input.Body.VpnGatewayId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeprovisionByoipCidr

valid {
    input.Body.Cidr == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeprovisionIpamByoasn

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamId == STRING
    input.Body.Asn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeprovisionIpamPoolCidr

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.Cidr == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeprovisionPublicIpv4PoolCidr

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.PoolId == STRING
    input.Body.Cidr == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterImage

valid {
    input.Body.ImageId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterInstanceEventNotificationAttributes

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceTagAttribute.IncludeAllTagsOfInstance == BOOLEAN
    input.Body.InstanceTagAttribute.InstanceTagKey[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterTransitGatewayMulticastGroupMembers

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.GroupIpAddress == STRING
    input.Body.NetworkInterfaceIds[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterTransitGatewayMulticastGroupSources

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.GroupIpAddress == STRING
    input.Body.NetworkInterfaceIds[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAccountAttributes

enum_AccountAttributeName := [ "supported-platforms", "default-vpc" ]

valid {
    input.Body.attributeName[_] == enum_AccountAttributeName[_]
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAddressTransfers

valid {
    input.Body.AllocationId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAddresses

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.PublicIp[_] == STRING
    input.Body.AllocationId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAddressesAttribute

enum_AddressAttributeName := [ "domain-name" ]

valid {
    input.Body.AllocationId[_] == STRING
    input.Body.Attribute == enum_AddressAttributeName[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAggregateIdFormat

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAvailabilityZones

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.ZoneName[_] == STRING
    input.Body.ZoneId[_] == STRING
    input.Body.AllAvailabilityZones == BOOLEAN
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAwsNetworkPerformanceMetricSubscriptions

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeBundleTasks

valid {
    input.Body.BundleId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeByoipCidrs

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCapacityBlockOfferings

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceType == STRING
    input.Body.InstanceCount == INTEGER
    input.Body.StartDateRange == TIMESTAMP
    input.Body.EndDateRange == TIMESTAMP
    input.Body.CapacityDurationHours == INTEGER
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCapacityReservationFleets

valid {
    input.Body.CapacityReservationFleetId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCapacityReservations

valid {
    input.Body.CapacityReservationId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCarrierGateways

valid {
    input.Body.CarrierGatewayId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeClassicLinkInstances

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.InstanceId[_] == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeClientVpnAuthorizationRules

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeClientVpnConnections

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeClientVpnEndpoints

valid {
    input.Body.ClientVpnEndpointId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeClientVpnRoutes

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeClientVpnTargetNetworks

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.AssociationIds[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCoipPools

valid {
    input.Body.PoolId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeConversionTasks

valid {
    input.Body.conversionTaskId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCustomerGateways

valid {
    input.Body.CustomerGatewayId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDhcpOptions

valid {
    input.Body.DhcpOptionsId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEgressOnlyInternetGateways

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.EgressOnlyInternetGatewayId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeElasticGpus

valid {
    input.Body.ElasticGpuId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeExportImageTasks

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.ExportImageTaskId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeExportTasks

valid {
    input.Body.exportTaskId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFastLaunchImages

valid {
    input.Body.ImageId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFastSnapshotRestores

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFleetHistory

enum_FleetEventType := [ "instance-change", "fleet-change", "service-error" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.EventType == enum_FleetEventType[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.FleetId == STRING
    input.Body.StartTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFleetInstances

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.FleetId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFleets

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.FleetId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFlowLogs

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.FlowLogId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFpgaImageAttribute

enum_FpgaImageAttributeName := [ "description", "name", "loadPermission", "productCodes" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.FpgaImageId == STRING
    input.Body.Attribute == enum_FpgaImageAttributeName[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeFpgaImages

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.FpgaImageId[_] == STRING
    input.Body.Owner[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeHostReservationOfferings

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxDuration == INTEGER
    input.Body.MaxResults == INTEGER
    input.Body.MinDuration == INTEGER
    input.Body.NextToken == STRING
    input.Body.OfferingId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeHostReservations

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.HostReservationIdSet[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeHosts

valid {
    input.Body.filter[_].Name == STRING
    input.Body.filter[_].Value[_] == STRING
    input.Body.hostId[_] == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIamInstanceProfileAssociations

valid {
    input.Body.AssociationId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIdFormat

valid {
    input.Body.Resource == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIdentityIdFormat

valid {
    input.Body.principalArn == STRING
    input.Body.resource == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeImageAttribute

enum_ImageAttributeName := [ "description", "kernel", "ramdisk", "launchPermission", "productCodes", "blockDeviceMapping", "sriovNetSupport", "bootMode", "tpmSupport", "uefiData", "lastLaunchedTime", "imdsSupport" ]

valid {
    input.Body.Attribute == enum_ImageAttributeName[_]
    input.Body.ImageId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeImages

valid {
    input.Body.ExecutableBy[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.ImageId[_] == STRING
    input.Body.Owner[_] == STRING
    input.Body.IncludeDeprecated == BOOLEAN
    input.Body.IncludeDisabled == BOOLEAN
    input.Body.dryRun == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeImportImageTasks

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Value[_] == STRING
    input.Body.ImportTaskId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeImportSnapshotTasks

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filters[_].Name == STRING
    input.Body.Filters[_].Value[_] == STRING
    input.Body.ImportTaskId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceAttribute

enum_InstanceAttributeName := [ "instanceType", "kernel", "ramdisk", "userData", "disableApiTermination", "instanceInitiatedShutdownBehavior", "rootDeviceName", "blockDeviceMapping", "productCodes", "sourceDestCheck", "groupSet", "ebsOptimized", "sriovNetSupport", "enaSupport", "enclaveOptions", "disableApiStop" ]

valid {
    input.Body.attribute == enum_InstanceAttributeName[_]
    input.Body.dryRun == BOOLEAN
    input.Body.instanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceConnectEndpoints

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.InstanceConnectEndpointId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceCreditSpecifications

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.InstanceId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceEventNotificationAttributes

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceEventWindows

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceEventWindowId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceStatus

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.InstanceId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.includeAllInstances == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceTopology

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.InstanceId[_] == STRING
    input.Body.GroupName[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceTypeOfferings

enum_LocationType := [ "region", "availability-zone", "availability-zone-id", "outpost" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.LocationType == enum_LocationType[_]
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceTypes

enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceType[_] == enum_InstanceType[_]
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstances

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.InstanceId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInternetGateways

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.internetGatewayId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIpamByoasn

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIpamPools

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.IpamPoolId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIpamResourceDiscoveries

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamResourceDiscoveryId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIpamResourceDiscoveryAssociations

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamResourceDiscoveryAssociationId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIpamScopes

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.IpamScopeId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIpams

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.IpamId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIpv6Pools

valid {
    input.Body.PoolId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeKeyPairs

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.KeyName[_] == STRING
    input.Body.KeyPairId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.IncludePublicKey == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLaunchTemplateVersions

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.LaunchTemplateId == STRING
    input.Body.LaunchTemplateName == STRING
    input.Body.LaunchTemplateVersion[_] == STRING
    input.Body.MinVersion == STRING
    input.Body.MaxVersion == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.ResolveAlias == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLaunchTemplates

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.LaunchTemplateId[_] == STRING
    input.Body.LaunchTemplateName[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations

valid {
    input.Body.LocalGatewayRouteTableVirtualInterfaceGroupAssociationId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLocalGatewayRouteTableVpcAssociations

valid {
    input.Body.LocalGatewayRouteTableVpcAssociationId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLocalGatewayRouteTables

valid {
    input.Body.LocalGatewayRouteTableId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLocalGatewayVirtualInterfaceGroups

valid {
    input.Body.LocalGatewayVirtualInterfaceGroupId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLocalGatewayVirtualInterfaces

valid {
    input.Body.LocalGatewayVirtualInterfaceId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLocalGateways

valid {
    input.Body.LocalGatewayId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLockedSnapshots

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.SnapshotId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMacHosts

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.HostId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeManagedPrefixLists

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.PrefixListId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMovingAddresses

valid {
    input.Body.filter[_].Name == STRING
    input.Body.filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.publicIp[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNatGateways

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NatGatewayId[_] == STRING
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNetworkAcls

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.NetworkAclId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNetworkInsightsAccessScopeAnalyses

valid {
    input.Body.NetworkInsightsAccessScopeAnalysisId[_] == STRING
    input.Body.NetworkInsightsAccessScopeId == STRING
    input.Body.AnalysisStartTimeBegin == TIMESTAMP
    input.Body.AnalysisStartTimeEnd == TIMESTAMP
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNetworkInsightsAccessScopes

valid {
    input.Body.NetworkInsightsAccessScopeId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNetworkInsightsAnalyses

valid {
    input.Body.NetworkInsightsAnalysisId[_] == STRING
    input.Body.NetworkInsightsPathId == STRING
    input.Body.AnalysisStartTime == TIMESTAMP
    input.Body.AnalysisEndTime == TIMESTAMP
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNetworkInsightsPaths

valid {
    input.Body.NetworkInsightsPathId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNetworkInterfaceAttribute

enum_NetworkInterfaceAttribute := [ "description", "groupSet", "sourceDestCheck", "attachment" ]

valid {
    input.Body.attribute == enum_NetworkInterfaceAttribute[_]
    input.Body.dryRun == BOOLEAN
    input.Body.networkInterfaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNetworkInterfacePermissions

valid {
    input.Body.NetworkInterfacePermissionId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNetworkInterfaces

valid {
    input.Body.filter[_].Name == STRING
    input.Body.filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.NetworkInterfaceId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePlacementGroups

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.groupName[_] == STRING
    input.Body.GroupId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePrefixLists

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.PrefixListId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePrincipalIdFormat

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Resource[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePublicIpv4Pools

valid {
    input.Body.PoolId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRegions

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.RegionName[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.AllRegions == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReplaceRootVolumeTasks

valid {
    input.Body.ReplaceRootVolumeTaskId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReservedInstances

enum_OfferingClassType := [ "standard", "convertible" ]
enum_OfferingTypeValues := [ "Heavy Utilization", "Medium Utilization", "Light Utilization", "No Upfront", "Partial Upfront", "All Upfront" ]

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.OfferingClass == enum_OfferingClassType[_]
    input.Body.ReservedInstancesId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.offeringType == enum_OfferingTypeValues[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReservedInstancesListings

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.reservedInstancesId == STRING
    input.Body.reservedInstancesListingId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReservedInstancesModifications

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.ReservedInstancesModificationId[_] == STRING
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeReservedInstancesOfferings

enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_OfferingClassType := [ "standard", "convertible" ]
enum_OfferingTypeValues := [ "Heavy Utilization", "Medium Utilization", "Light Utilization", "No Upfront", "Partial Upfront", "All Upfront" ]
enum_RIProductDescription := [ "Linux/UNIX", "Linux/UNIX (Amazon VPC)", "Windows", "Windows (Amazon VPC)" ]
enum_Tenancy := [ "default", "dedicated", "host" ]

valid {
    input.Body.AvailabilityZone == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.IncludeMarketplace == BOOLEAN
    input.Body.InstanceType == enum_InstanceType[_]
    input.Body.MaxDuration == LONG
    input.Body.MaxInstanceCount == INTEGER
    input.Body.MinDuration == LONG
    input.Body.OfferingClass == enum_OfferingClassType[_]
    input.Body.ProductDescription == enum_RIProductDescription[_]
    input.Body.ReservedInstancesOfferingId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.instanceTenancy == enum_Tenancy[_]
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.offeringType == enum_OfferingTypeValues[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRouteTables

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.RouteTableId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeScheduledInstanceAvailability

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.FirstSlotStartTimeRange.EarliestTime == TIMESTAMP
    input.Body.FirstSlotStartTimeRange.LatestTime == TIMESTAMP
    input.Body.MaxResults == INTEGER
    input.Body.MaxSlotDurationInHours == INTEGER
    input.Body.MinSlotDurationInHours == INTEGER
    input.Body.NextToken == STRING
    input.Body.Recurrence.Frequency == STRING
    input.Body.Recurrence.Interval == INTEGER
    input.Body.Recurrence.OccurrenceDay[_] == INTEGER
    input.Body.Recurrence.OccurrenceRelativeToEnd == BOOLEAN
    input.Body.Recurrence.OccurrenceUnit == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeScheduledInstances

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.ScheduledInstanceId[_] == STRING
    input.Body.SlotStartTimeRange.EarliestTime == TIMESTAMP
    input.Body.SlotStartTimeRange.LatestTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSecurityGroupReferences

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.GroupId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSecurityGroupRules

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.SecurityGroupRuleId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSecurityGroups

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.GroupId[_] == STRING
    input.Body.GroupName[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSnapshotAttribute

enum_SnapshotAttributeName := [ "productCodes", "createVolumePermission" ]

valid {
    input.Body.Attribute == enum_SnapshotAttributeName[_]
    input.Body.SnapshotId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSnapshotTierStatus

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSnapshots

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Owner[_] == STRING
    input.Body.RestorableBy[_] == STRING
    input.Body.SnapshotId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSpotDatafeedSubscription

valid {
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSpotFleetInstances

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.spotFleetRequestId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSpotFleetRequestHistory

enum_EventType := [ "instanceChange", "fleetRequestChange", "error", "information" ]

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.eventType == enum_EventType[_]
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.spotFleetRequestId == STRING
    input.Body.startTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSpotFleetRequests

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.spotFleetRequestId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSpotInstanceRequests

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.SpotInstanceRequestId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSpotPriceHistory

enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.availabilityZone == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.endTime == TIMESTAMP
    input.Body.InstanceType[_] == enum_InstanceType[_]
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.ProductDescription[_] == STRING
    input.Body.startTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStaleSecurityGroups

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.VpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStoreImageTasks

valid {
    input.Body.ImageId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSubnets

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.SubnetId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTags

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTrafficMirrorFilters

valid {
    input.Body.TrafficMirrorFilterId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTrafficMirrorSessions

valid {
    input.Body.TrafficMirrorSessionId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTrafficMirrorTargets

valid {
    input.Body.TrafficMirrorTargetId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayAttachments

valid {
    input.Body.TransitGatewayAttachmentIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayConnectPeers

valid {
    input.Body.TransitGatewayConnectPeerIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayConnects

valid {
    input.Body.TransitGatewayAttachmentIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayMulticastDomains

valid {
    input.Body.TransitGatewayMulticastDomainIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayPeeringAttachments

valid {
    input.Body.TransitGatewayAttachmentIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayPolicyTables

valid {
    input.Body.TransitGatewayPolicyTableIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayRouteTableAnnouncements

valid {
    input.Body.TransitGatewayRouteTableAnnouncementIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayRouteTables

valid {
    input.Body.TransitGatewayRouteTableIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGatewayVpcAttachments

valid {
    input.Body.TransitGatewayAttachmentIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTransitGateways

valid {
    input.Body.TransitGatewayIds[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTrunkInterfaceAssociations

valid {
    input.Body.AssociationId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVerifiedAccessEndpoints

valid {
    input.Body.VerifiedAccessEndpointId[_] == STRING
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.VerifiedAccessGroupId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVerifiedAccessGroups

valid {
    input.Body.VerifiedAccessGroupId[_] == STRING
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVerifiedAccessInstanceLoggingConfigurations

valid {
    input.Body.VerifiedAccessInstanceId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVerifiedAccessInstances

valid {
    input.Body.VerifiedAccessInstanceId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVerifiedAccessTrustProviders

valid {
    input.Body.VerifiedAccessTrustProviderId[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVolumeAttribute

enum_VolumeAttributeName := [ "autoEnableIO", "productCodes" ]

valid {
    input.Body.Attribute == enum_VolumeAttributeName[_]
    input.Body.VolumeId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVolumeStatus

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.VolumeId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVolumes

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.VolumeId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVolumesModifications

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.VolumeId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcAttribute

enum_VpcAttributeName := [ "enableDnsSupport", "enableDnsHostnames", "enableNetworkAddressUsageMetrics" ]

valid {
    input.Body.Attribute == enum_VpcAttributeName[_]
    input.Body.VpcId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcClassicLink

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.VpcId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcClassicLinkDnsSupport

valid {
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.VpcIds[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcEndpointConnectionNotifications

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ConnectionNotificationId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcEndpointConnections

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcEndpointServiceConfigurations

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcEndpointServicePermissions

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcEndpointServices

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceName[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcEndpoints

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.VpcEndpointId[_] == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcPeeringConnections

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.VpcPeeringConnectionId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpcs

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.VpcId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpnConnections

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.VpnConnectionId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVpnGateways

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.VpnGatewayId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachClassicLinkVpc

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.instanceId == STRING
    input.Body.vpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachInternetGateway

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.internetGatewayId == STRING
    input.Body.vpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachNetworkInterface

valid {
    input.Body.attachmentId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.force == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachVerifiedAccessTrustProvider

valid {
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.VerifiedAccessTrustProviderId == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachVolume

valid {
    input.Body.Device == STRING
    input.Body.Force == BOOLEAN
    input.Body.InstanceId == STRING
    input.Body.VolumeId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachVpnGateway

valid {
    input.Body.VpcId == STRING
    input.Body.VpnGatewayId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableAddressTransfer

valid {
    input.Body.AllocationId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableAwsNetworkPerformanceMetricSubscription

enum_MetricType := [ "aggregate-latency" ]
enum_StatisticType := [ "p50" ]

valid {
    input.Body.Source == STRING
    input.Body.Destination == STRING
    input.Body.Metric == enum_MetricType[_]
    input.Body.Statistic == enum_StatisticType[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableEbsEncryptionByDefault

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableFastLaunch

valid {
    input.Body.ImageId == STRING
    input.Body.Force == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableFastSnapshotRestores

valid {
    input.Body.AvailabilityZone[_] == STRING
    input.Body.SourceSnapshotId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableImage

valid {
    input.Body.ImageId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableImageBlockPublicAccess

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableImageDeprecation

valid {
    input.Body.ImageId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableIpamOrganizationAdminAccount

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.DelegatedAdminAccountId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableSerialConsoleAccess

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableSnapshotBlockPublicAccess

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableTransitGatewayRouteTablePropagation

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.TransitGatewayRouteTableAnnouncementId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableVgwRoutePropagation

valid {
    input.Body.GatewayId == STRING
    input.Body.RouteTableId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableVpcClassicLink

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.vpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableVpcClassicLinkDnsSupport

valid {
    input.Body.VpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateAddress

valid {
    input.Body.AssociationId == STRING
    input.Body.PublicIp == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateClientVpnTargetNetwork

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.AssociationId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateEnclaveCertificateIamRole

valid {
    input.Body.CertificateArn == STRING
    input.Body.RoleArn == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateIamInstanceProfile

valid {
    input.Body.AssociationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateInstanceEventWindow

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceEventWindowId == STRING
    input.Body.AssociationTarget.InstanceId[_] == STRING
    input.Body.AssociationTarget.InstanceTag[_].key == STRING
    input.Body.AssociationTarget.InstanceTag[_].value == STRING
    input.Body.AssociationTarget.DedicatedHostId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateIpamByoasn

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Asn == STRING
    input.Body.Cidr == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateIpamResourceDiscovery

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamResourceDiscoveryAssociationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateNatGatewayAddress

valid {
    input.Body.NatGatewayId == STRING
    input.Body.AssociationId[_] == STRING
    input.Body.MaxDrainDurationSeconds == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateRouteTable

valid {
    input.Body.associationId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateSubnetCidrBlock

valid {
    input.Body.associationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateTransitGatewayMulticastDomain

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.SubnetIds[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateTransitGatewayPolicyTable

valid {
    input.Body.TransitGatewayPolicyTableId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateTransitGatewayRouteTable

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateTrunkInterface

valid {
    input.Body.AssociationId == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateVpcCidrBlock

valid {
    input.Body.associationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableAddressTransfer

valid {
    input.Body.AllocationId == STRING
    input.Body.TransferAccountId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableAwsNetworkPerformanceMetricSubscription

enum_MetricType := [ "aggregate-latency" ]
enum_StatisticType := [ "p50" ]

valid {
    input.Body.Source == STRING
    input.Body.Destination == STRING
    input.Body.Metric == enum_MetricType[_]
    input.Body.Statistic == enum_StatisticType[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableEbsEncryptionByDefault

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableFastLaunch

valid {
    input.Body.ImageId == STRING
    input.Body.ResourceType == STRING
    input.Body.SnapshotConfiguration.TargetResourceCount == INTEGER
    input.Body.LaunchTemplate.LaunchTemplateId == STRING
    input.Body.LaunchTemplate.LaunchTemplateName == STRING
    input.Body.LaunchTemplate.Version == STRING
    input.Body.MaxParallelLaunches == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableFastSnapshotRestores

valid {
    input.Body.AvailabilityZone[_] == STRING
    input.Body.SourceSnapshotId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableImage

valid {
    input.Body.ImageId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableImageBlockPublicAccess

enum_ImageBlockPublicAccessEnabledState := [ "block-new-sharing" ]

valid {
    input.Body.ImageBlockPublicAccessState == enum_ImageBlockPublicAccessEnabledState[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableImageDeprecation

valid {
    input.Body.ImageId == STRING
    input.Body.DeprecateAt == TIMESTAMP
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableIpamOrganizationAdminAccount

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.DelegatedAdminAccountId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableReachabilityAnalyzerOrganizationSharing

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableSerialConsoleAccess

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableSnapshotBlockPublicAccess

enum_SnapshotBlockPublicAccessState := [ "block-all-sharing", "block-new-sharing", "unblocked" ]

valid {
    input.Body.State == enum_SnapshotBlockPublicAccessState[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableTransitGatewayRouteTablePropagation

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.TransitGatewayRouteTableAnnouncementId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableVgwRoutePropagation

valid {
    input.Body.GatewayId == STRING
    input.Body.RouteTableId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableVolumeIO

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.volumeId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableVpcClassicLink

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.vpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableVpcClassicLinkDnsSupport

valid {
    input.Body.VpcId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExportClientVpnClientCertificateRevocationList

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExportClientVpnClientConfiguration

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExportImage

enum_DiskImageFormat := [ "VMDK", "RAW", "VHD" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.Description == STRING
    input.Body.DiskImageFormat == enum_DiskImageFormat[_]
    input.Body.DryRun == BOOLEAN
    input.Body.ImageId == STRING
    input.Body.S3ExportLocation.S3Bucket == STRING
    input.Body.S3ExportLocation.S3Prefix == STRING
    input.Body.RoleName == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExportTransitGatewayRoutes

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.S3Bucket == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAssociatedEnclaveCertificateIamRoles

valid {
    input.Body.CertificateArn == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAssociatedIpv6PoolCidrs

valid {
    input.Body.PoolId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAwsNetworkPerformanceData

enum_MetricType := [ "aggregate-latency" ]
enum_PeriodType := [ "five-minutes", "fifteen-minutes", "one-hour", "three-hours", "one-day", "one-week" ]
enum_StatisticType := [ "p50" ]

valid {
    input.Body.DataQuery[_].Id == STRING
    input.Body.DataQuery[_].Source == STRING
    input.Body.DataQuery[_].Destination == STRING
    input.Body.DataQuery[_].Metric == enum_MetricType[_]
    input.Body.DataQuery[_].Statistic == enum_StatisticType[_]
    input.Body.DataQuery[_].Period == enum_PeriodType[_]
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCapacityReservationUsage

valid {
    input.Body.CapacityReservationId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCoipPoolUsage

valid {
    input.Body.PoolId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetConsoleOutput

valid {
    input.Body.InstanceId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.Latest == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetConsoleScreenshot

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceId == STRING
    input.Body.WakeUp == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetDefaultCreditSpecification

enum_UnlimitedSupportedInstanceFamily := [ "t2", "t3", "t3a", "t4g" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceFamily == enum_UnlimitedSupportedInstanceFamily[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetEbsDefaultKmsKeyId

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetEbsEncryptionByDefault

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetFlowLogsIntegrationTemplate

enum_PartitionLoadFrequency := [ "none", "daily", "weekly", "monthly" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.FlowLogId == STRING
    input.Body.ConfigDeliveryS3DestinationArn == STRING
    input.Body.IntegrateService.AthenaIntegration[_].IntegrationResultS3DestinationArn == STRING
    input.Body.IntegrateService.AthenaIntegration[_].PartitionLoadFrequency == enum_PartitionLoadFrequency[_]
    input.Body.IntegrateService.AthenaIntegration[_].PartitionStartDate == TIMESTAMP
    input.Body.IntegrateService.AthenaIntegration[_].PartitionEndDate == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetGroupsForCapacityReservation

valid {
    input.Body.CapacityReservationId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetHostReservationPurchasePreview

valid {
    input.Body.HostIdSet[_] == STRING
    input.Body.OfferingId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetImageBlockPublicAccessState

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetInstanceMetadataDefaults

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetInstanceTypesFromInstanceRequirements

enum_AcceleratorManufacturer := [ "amazon-web-services", "amd", "nvidia", "xilinx", "habana" ]
enum_AcceleratorName := [ "a100", "inferentia", "k520", "k80", "m60", "radeon-pro-v520", "t4", "vu9p", "v100", "a10g", "h100", "t4g" ]
enum_AcceleratorType := [ "gpu", "fpga", "inference" ]
enum_ArchitectureType := [ "i386", "x86_64", "arm64", "x86_64_mac", "arm64_mac" ]
enum_BareMetal := [ "included", "required", "excluded" ]
enum_BurstablePerformance := [ "included", "required", "excluded" ]
enum_CpuManufacturer := [ "intel", "amd", "amazon-web-services" ]
enum_InstanceGeneration := [ "current", "previous" ]
enum_LocalStorage := [ "included", "required", "excluded" ]
enum_LocalStorageType := [ "hdd", "ssd" ]
enum_VirtualizationType := [ "hvm", "paravirtual" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ArchitectureType[_] == enum_ArchitectureType[_]
    input.Body.VirtualizationType[_] == enum_VirtualizationType[_]
    input.Body.InstanceRequirements.VCpuCount.Min == INTEGER
    input.Body.InstanceRequirements.VCpuCount.Max == INTEGER
    input.Body.InstanceRequirements.MemoryMiB.Min == INTEGER
    input.Body.InstanceRequirements.MemoryMiB.Max == INTEGER
    input.Body.InstanceRequirements.CpuManufacturer[_] == enum_CpuManufacturer[_]
    input.Body.InstanceRequirements.MemoryGiBPerVCpu.Min == DOUBLE
    input.Body.InstanceRequirements.MemoryGiBPerVCpu.Max == DOUBLE
    input.Body.InstanceRequirements.ExcludedInstanceType[_] == STRING
    input.Body.InstanceRequirements.InstanceGeneration[_] == enum_InstanceGeneration[_]
    input.Body.InstanceRequirements.SpotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.InstanceRequirements.OnDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.InstanceRequirements.BareMetal == enum_BareMetal[_]
    input.Body.InstanceRequirements.BurstablePerformance == enum_BurstablePerformance[_]
    input.Body.InstanceRequirements.RequireHibernateSupport == BOOLEAN
    input.Body.InstanceRequirements.NetworkInterfaceCount.Min == INTEGER
    input.Body.InstanceRequirements.NetworkInterfaceCount.Max == INTEGER
    input.Body.InstanceRequirements.LocalStorage == enum_LocalStorage[_]
    input.Body.InstanceRequirements.LocalStorageType[_] == enum_LocalStorageType[_]
    input.Body.InstanceRequirements.TotalLocalStorageGB.Min == DOUBLE
    input.Body.InstanceRequirements.TotalLocalStorageGB.Max == DOUBLE
    input.Body.InstanceRequirements.BaselineEbsBandwidthMbps.Min == INTEGER
    input.Body.InstanceRequirements.BaselineEbsBandwidthMbps.Max == INTEGER
    input.Body.InstanceRequirements.AcceleratorType[_] == enum_AcceleratorType[_]
    input.Body.InstanceRequirements.AcceleratorCount.Min == INTEGER
    input.Body.InstanceRequirements.AcceleratorCount.Max == INTEGER
    input.Body.InstanceRequirements.AcceleratorManufacturer[_] == enum_AcceleratorManufacturer[_]
    input.Body.InstanceRequirements.AcceleratorName[_] == enum_AcceleratorName[_]
    input.Body.InstanceRequirements.AcceleratorTotalMemoryMiB.Min == INTEGER
    input.Body.InstanceRequirements.AcceleratorTotalMemoryMiB.Max == INTEGER
    input.Body.InstanceRequirements.NetworkBandwidthGbps.Min == DOUBLE
    input.Body.InstanceRequirements.NetworkBandwidthGbps.Max == DOUBLE
    input.Body.InstanceRequirements.AllowedInstanceType[_] == STRING
    input.Body.InstanceRequirements.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetInstanceUefiData

valid {
    input.Body.InstanceId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIpamAddressHistory

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Cidr == STRING
    input.Body.IpamScopeId == STRING
    input.Body.VpcId == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIpamDiscoveredAccounts

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamResourceDiscoveryId == STRING
    input.Body.DiscoveryRegion == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIpamDiscoveredPublicAddresses

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamResourceDiscoveryId == STRING
    input.Body.AddressRegion == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIpamDiscoveredResourceCidrs

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamResourceDiscoveryId == STRING
    input.Body.ResourceRegion == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIpamPoolAllocations

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.IpamPoolAllocationId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIpamPoolCidrs

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetIpamResourceCidrs

enum_IpamResourceType := [ "vpc", "subnet", "eip", "public-ipv4-pool", "ipv6-pool", "eni" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.IpamScopeId == STRING
    input.Body.IpamPoolId == STRING
    input.Body.ResourceId == STRING
    input.Body.ResourceType == enum_IpamResourceType[_]
    input.Body.ResourceTag.Key == STRING
    input.Body.ResourceTag.Value == STRING
    input.Body.ResourceOwner == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetLaunchTemplateData

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetManagedPrefixListAssociations

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.PrefixListId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetManagedPrefixListEntries

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.PrefixListId == STRING
    input.Body.TargetVersion == LONG
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetNetworkInsightsAccessScopeAnalysisFindings

valid {
    input.Body.NetworkInsightsAccessScopeAnalysisId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetNetworkInsightsAccessScopeContent

valid {
    input.Body.NetworkInsightsAccessScopeId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPasswordData

valid {
    input.Body.InstanceId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetReservedInstancesExchangeQuote

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ReservedInstanceId[_] == STRING
    input.Body.TargetConfiguration[_].InstanceCount == INTEGER
    input.Body.TargetConfiguration[_].OfferingId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSecurityGroupsForVpc

valid {
    input.Body.VpcId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSerialConsoleAccessStatus

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSnapshotBlockPublicAccessState

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSpotPlacementScores

enum_AcceleratorManufacturer := [ "amazon-web-services", "amd", "nvidia", "xilinx", "habana" ]
enum_AcceleratorName := [ "a100", "inferentia", "k520", "k80", "m60", "radeon-pro-v520", "t4", "vu9p", "v100", "a10g", "h100", "t4g" ]
enum_AcceleratorType := [ "gpu", "fpga", "inference" ]
enum_ArchitectureType := [ "i386", "x86_64", "arm64", "x86_64_mac", "arm64_mac" ]
enum_BareMetal := [ "included", "required", "excluded" ]
enum_BurstablePerformance := [ "included", "required", "excluded" ]
enum_CpuManufacturer := [ "intel", "amd", "amazon-web-services" ]
enum_InstanceGeneration := [ "current", "previous" ]
enum_LocalStorage := [ "included", "required", "excluded" ]
enum_LocalStorageType := [ "hdd", "ssd" ]
enum_TargetCapacityUnitType := [ "vcpu", "memory-mib", "units" ]
enum_VirtualizationType := [ "hvm", "paravirtual" ]

valid {
    input.Body.InstanceType[_] == STRING
    input.Body.TargetCapacity == INTEGER
    input.Body.TargetCapacityUnitType == enum_TargetCapacityUnitType[_]
    input.Body.SingleAvailabilityZone == BOOLEAN
    input.Body.RegionName[_] == STRING
    input.Body.InstanceRequirementsWithMetadata.ArchitectureType[_] == enum_ArchitectureType[_]
    input.Body.InstanceRequirementsWithMetadata.VirtualizationType[_] == enum_VirtualizationType[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.VCpuCount.Min == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.VCpuCount.Max == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.MemoryMiB.Min == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.MemoryMiB.Max == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.CpuManufacturer[_] == enum_CpuManufacturer[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.MemoryGiBPerVCpu.Min == DOUBLE
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.MemoryGiBPerVCpu.Max == DOUBLE
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.ExcludedInstanceType[_] == STRING
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.InstanceGeneration[_] == enum_InstanceGeneration[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.SpotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.OnDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.BareMetal == enum_BareMetal[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.BurstablePerformance == enum_BurstablePerformance[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.RequireHibernateSupport == BOOLEAN
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.NetworkInterfaceCount.Min == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.NetworkInterfaceCount.Max == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.LocalStorage == enum_LocalStorage[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.LocalStorageType[_] == enum_LocalStorageType[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.TotalLocalStorageGB.Min == DOUBLE
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.TotalLocalStorageGB.Max == DOUBLE
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.BaselineEbsBandwidthMbps.Min == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.BaselineEbsBandwidthMbps.Max == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.AcceleratorType[_] == enum_AcceleratorType[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.AcceleratorCount.Min == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.AcceleratorCount.Max == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.AcceleratorManufacturer[_] == enum_AcceleratorManufacturer[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.AcceleratorName[_] == enum_AcceleratorName[_]
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.AcceleratorTotalMemoryMiB.Min == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.AcceleratorTotalMemoryMiB.Max == INTEGER
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.NetworkBandwidthGbps.Min == DOUBLE
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.NetworkBandwidthGbps.Max == DOUBLE
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.AllowedInstanceType[_] == STRING
    input.Body.InstanceRequirementsWithMetadata.InstanceRequirements.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.DryRun == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSubnetCidrReservations

valid {
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.SubnetId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTransitGatewayAttachmentPropagations

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTransitGatewayMulticastDomainAssociations

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTransitGatewayPolicyTableAssociations

valid {
    input.Body.TransitGatewayPolicyTableId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTransitGatewayPolicyTableEntries

valid {
    input.Body.TransitGatewayPolicyTableId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTransitGatewayPrefixListReferences

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTransitGatewayRouteTableAssociations

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTransitGatewayRouteTablePropagations

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetVerifiedAccessEndpointPolicy

valid {
    input.Body.VerifiedAccessEndpointId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetVerifiedAccessGroupPolicy

valid {
    input.Body.VerifiedAccessGroupId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetVpnConnectionDeviceSampleConfiguration

valid {
    input.Body.VpnConnectionId == STRING
    input.Body.VpnConnectionDeviceTypeId == STRING
    input.Body.InternetKeyExchangeVersion == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetVpnConnectionDeviceTypes

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetVpnTunnelReplacementStatus

valid {
    input.Body.VpnConnectionId == STRING
    input.Body.VpnTunnelOutsideIpAddress == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportClientVpnClientCertificateRevocationList

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.CertificateRevocationList == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportImage

enum_BootModeValues := [ "legacy-bios", "uefi", "uefi-preferred" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Architecture == STRING
    input.Body.ClientData.Comment == STRING
    input.Body.ClientData.UploadEnd == TIMESTAMP
    input.Body.ClientData.UploadSize == DOUBLE
    input.Body.ClientData.UploadStart == TIMESTAMP
    input.Body.ClientToken == STRING
    input.Body.Description == STRING
    input.Body.DiskContainer[_].Description == STRING
    input.Body.DiskContainer[_].DeviceName == STRING
    input.Body.DiskContainer[_].Format == STRING
    input.Body.DiskContainer[_].SnapshotId == STRING
    input.Body.DiskContainer[_].Url == STRING
    input.Body.DiskContainer[_].UserBucket.S3Bucket == STRING
    input.Body.DiskContainer[_].UserBucket.S3Key == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Encrypted == BOOLEAN
    input.Body.Hypervisor == STRING
    input.Body.KmsKeyId == STRING
    input.Body.LicenseType == STRING
    input.Body.Platform == STRING
    input.Body.RoleName == STRING
    input.Body.LicenseSpecifications[_].LicenseConfigurationArn == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.UsageOperation == STRING
    input.Body.BootMode == enum_BootModeValues[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportInstance

enum_ArchitectureValues := [ "i386", "x86_64", "arm64", "x86_64_mac", "arm64_mac" ]
enum_DiskImageFormat := [ "VMDK", "RAW", "VHD" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_PlatformValues := [ "Windows" ]
enum_ShutdownBehavior := [ "stop", "terminate" ]
enum_Tenancy := [ "default", "dedicated", "host" ]

valid {
    input.Body.description == STRING
    input.Body.diskImage[_].Description == STRING
    input.Body.diskImage[_].Image.bytes == LONG
    input.Body.diskImage[_].Image.format == enum_DiskImageFormat[_]
    input.Body.diskImage[_].Image.importManifestUrl == STRING
    input.Body.diskImage[_].Volume.size == LONG
    input.Body.dryRun == BOOLEAN
    input.Body.launchSpecification.additionalInfo == STRING
    input.Body.launchSpecification.architecture == enum_ArchitectureValues[_]
    input.Body.launchSpecification.GroupId[_] == STRING
    input.Body.launchSpecification.GroupName[_] == STRING
    input.Body.launchSpecification.instanceInitiatedShutdownBehavior == enum_ShutdownBehavior[_]
    input.Body.launchSpecification.instanceType == enum_InstanceType[_]
    input.Body.launchSpecification.monitoring == BOOLEAN
    input.Body.launchSpecification.placement.availabilityZone == STRING
    input.Body.launchSpecification.placement.affinity == STRING
    input.Body.launchSpecification.placement.groupName == STRING
    input.Body.launchSpecification.placement.partitionNumber == INTEGER
    input.Body.launchSpecification.placement.hostId == STRING
    input.Body.launchSpecification.placement.tenancy == enum_Tenancy[_]
    input.Body.launchSpecification.placement.spreadDomain == STRING
    input.Body.launchSpecification.placement.hostResourceGroupArn == STRING
    input.Body.launchSpecification.placement.groupId == STRING
    input.Body.launchSpecification.privateIpAddress == STRING
    input.Body.launchSpecification.subnetId == STRING
    input.Body.launchSpecification.userData.data == STRING
    input.Body.platform == enum_PlatformValues[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportKeyPair

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.keyName == STRING
    input.Body.publicKeyMaterial == BLOB
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportSnapshot

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.ClientData.Comment == STRING
    input.Body.ClientData.UploadEnd == TIMESTAMP
    input.Body.ClientData.UploadSize == DOUBLE
    input.Body.ClientData.UploadStart == TIMESTAMP
    input.Body.ClientToken == STRING
    input.Body.Description == STRING
    input.Body.DiskContainer.Description == STRING
    input.Body.DiskContainer.Format == STRING
    input.Body.DiskContainer.Url == STRING
    input.Body.DiskContainer.UserBucket.S3Bucket == STRING
    input.Body.DiskContainer.UserBucket.S3Key == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.Encrypted == BOOLEAN
    input.Body.KmsKeyId == STRING
    input.Body.RoleName == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportVolume

enum_DiskImageFormat := [ "VMDK", "RAW", "VHD" ]

valid {
    input.Body.availabilityZone == STRING
    input.Body.description == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.image.bytes == LONG
    input.Body.image.format == enum_DiskImageFormat[_]
    input.Body.image.importManifestUrl == STRING
    input.Body.volume.size == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListImagesInRecycleBin

valid {
    input.Body.ImageId[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSnapshotsInRecycleBin

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.SnapshotId[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

LockSnapshot

enum_LockMode := [ "compliance", "governance" ]

valid {
    input.Body.SnapshotId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.LockMode == enum_LockMode[_]
    input.Body.CoolOffPeriod == INTEGER
    input.Body.LockDuration == INTEGER
    input.Body.ExpirationDate == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyAddressAttribute

valid {
    input.Body.AllocationId == STRING
    input.Body.DomainName == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyAvailabilityZoneGroup

enum_ModifyAvailabilityZoneOptInStatus := [ "opted-in", "not-opted-in" ]

valid {
    input.Body.GroupName == STRING
    input.Body.OptInStatus == enum_ModifyAvailabilityZoneOptInStatus[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyCapacityReservation

enum_EndDateType := [ "unlimited", "limited" ]

valid {
    input.Body.CapacityReservationId == STRING
    input.Body.InstanceCount == INTEGER
    input.Body.EndDate == TIMESTAMP
    input.Body.EndDateType == enum_EndDateType[_]
    input.Body.Accept == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.Body.AdditionalInfo == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyCapacityReservationFleet

valid {
    input.Body.CapacityReservationFleetId == STRING
    input.Body.TotalTargetCapacity == INTEGER
    input.Body.EndDate == TIMESTAMP
    input.Body.DryRun == BOOLEAN
    input.Body.RemoveEndDate == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyClientVpnEndpoint

enum_SelfServicePortal := [ "enabled", "disabled" ]

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.ServerCertificateArn == STRING
    input.Body.ConnectionLogOptions.Enabled == BOOLEAN
    input.Body.ConnectionLogOptions.CloudwatchLogGroup == STRING
    input.Body.ConnectionLogOptions.CloudwatchLogStream == STRING
    input.Body.DnsServers.CustomDnsServers[_] == STRING
    input.Body.DnsServers.Enabled == BOOLEAN
    input.Body.VpnPort == INTEGER
    input.Body.Description == STRING
    input.Body.SplitTunnel == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.Body.SecurityGroupId[_] == STRING
    input.Body.VpcId == STRING
    input.Body.SelfServicePortal == enum_SelfServicePortal[_]
    input.Body.ClientConnectOptions.Enabled == BOOLEAN
    input.Body.ClientConnectOptions.LambdaFunctionArn == STRING
    input.Body.SessionTimeoutHours == INTEGER
    input.Body.ClientLoginBannerOptions.Enabled == BOOLEAN
    input.Body.ClientLoginBannerOptions.BannerText == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDefaultCreditSpecification

enum_UnlimitedSupportedInstanceFamily := [ "t2", "t3", "t3a", "t4g" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceFamily == enum_UnlimitedSupportedInstanceFamily[_]
    input.Body.CpuCredits == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyEbsDefaultKmsKeyId

valid {
    input.Body.KmsKeyId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyFleet

enum_AcceleratorManufacturer := [ "amazon-web-services", "amd", "nvidia", "xilinx", "habana" ]
enum_AcceleratorName := [ "a100", "inferentia", "k520", "k80", "m60", "radeon-pro-v520", "t4", "vu9p", "v100", "a10g", "h100", "t4g" ]
enum_AcceleratorType := [ "gpu", "fpga", "inference" ]
enum_BareMetal := [ "included", "required", "excluded" ]
enum_BurstablePerformance := [ "included", "required", "excluded" ]
enum_CpuManufacturer := [ "intel", "amd", "amazon-web-services" ]
enum_DefaultTargetCapacityType := [ "spot", "on-demand", "capacity-block" ]
enum_FleetExcessCapacityTerminationPolicy := [ "no-termination", "termination" ]
enum_InstanceGeneration := [ "current", "previous" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_LocalStorage := [ "included", "required", "excluded" ]
enum_LocalStorageType := [ "hdd", "ssd" ]
enum_TargetCapacityUnitType := [ "vcpu", "memory-mib", "units" ]
enum_Tenancy := [ "default", "dedicated", "host" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ExcessCapacityTerminationPolicy == enum_FleetExcessCapacityTerminationPolicy[_]
    input.Body.LaunchTemplateConfig[_].LaunchTemplateSpecification.LaunchTemplateId == STRING
    input.Body.LaunchTemplateConfig[_].LaunchTemplateSpecification.LaunchTemplateName == STRING
    input.Body.LaunchTemplateConfig[_].LaunchTemplateSpecification.Version == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceType == enum_InstanceType[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].MaxPrice == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].SubnetId == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].AvailabilityZone == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].WeightedCapacity == DOUBLE
    input.Body.LaunchTemplateConfig[_].Overrides[_].Priority == DOUBLE
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.availabilityZone == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.affinity == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.groupName == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.partitionNumber == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.hostId == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.tenancy == enum_Tenancy[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.spreadDomain == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.hostResourceGroupArn == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].Placement.groupId == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.VCpuCount.Min == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.VCpuCount.Max == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.MemoryMiB.Min == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.MemoryMiB.Max == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.CpuManufacturer[_] == enum_CpuManufacturer[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.MemoryGiBPerVCpu.Min == DOUBLE
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.MemoryGiBPerVCpu.Max == DOUBLE
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.ExcludedInstanceType[_] == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.InstanceGeneration[_] == enum_InstanceGeneration[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.SpotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.OnDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.BareMetal == enum_BareMetal[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.BurstablePerformance == enum_BurstablePerformance[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.RequireHibernateSupport == BOOLEAN
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.NetworkInterfaceCount.Min == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.NetworkInterfaceCount.Max == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.LocalStorage == enum_LocalStorage[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.LocalStorageType[_] == enum_LocalStorageType[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.TotalLocalStorageGB.Min == DOUBLE
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.TotalLocalStorageGB.Max == DOUBLE
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.BaselineEbsBandwidthMbps.Min == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.BaselineEbsBandwidthMbps.Max == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.AcceleratorType[_] == enum_AcceleratorType[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.AcceleratorCount.Min == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.AcceleratorCount.Max == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.AcceleratorManufacturer[_] == enum_AcceleratorManufacturer[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.AcceleratorName[_] == enum_AcceleratorName[_]
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.AcceleratorTotalMemoryMiB.Min == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.AcceleratorTotalMemoryMiB.Max == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.NetworkBandwidthGbps.Min == DOUBLE
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.NetworkBandwidthGbps.Max == DOUBLE
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.AllowedInstanceType[_] == STRING
    input.Body.LaunchTemplateConfig[_].Overrides[_].InstanceRequirements.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.LaunchTemplateConfig[_].Overrides[_].ImageId == STRING
    input.Body.FleetId == STRING
    input.Body.TargetCapacitySpecification.TotalTargetCapacity == INTEGER
    input.Body.TargetCapacitySpecification.OnDemandTargetCapacity == INTEGER
    input.Body.TargetCapacitySpecification.SpotTargetCapacity == INTEGER
    input.Body.TargetCapacitySpecification.DefaultTargetCapacityType == enum_DefaultTargetCapacityType[_]
    input.Body.TargetCapacitySpecification.TargetCapacityUnitType == enum_TargetCapacityUnitType[_]
    input.Body.Context == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyFpgaImageAttribute

enum_FpgaImageAttributeName := [ "description", "name", "loadPermission", "productCodes" ]
enum_OperationType := [ "add", "remove" ]
enum_PermissionGroup := [ "all" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.FpgaImageId == STRING
    input.Body.Attribute == enum_FpgaImageAttributeName[_]
    input.Body.OperationType == enum_OperationType[_]
    input.Body.UserId[_] == STRING
    input.Body.UserGroup[_] == STRING
    input.Body.ProductCode[_] == STRING
    input.Body.LoadPermission.Add[_].Group == enum_PermissionGroup[_]
    input.Body.LoadPermission.Add[_].UserId == STRING
    input.Body.LoadPermission.Remove[_].Group == enum_PermissionGroup[_]
    input.Body.LoadPermission.Remove[_].UserId == STRING
    input.Body.Description == STRING
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyHosts

enum_AutoPlacement := [ "on", "off" ]
enum_HostMaintenance := [ "on", "off" ]
enum_HostRecovery := [ "on", "off" ]

valid {
    input.Body.autoPlacement == enum_AutoPlacement[_]
    input.Body.hostId[_] == STRING
    input.Body.HostRecovery == enum_HostRecovery[_]
    input.Body.InstanceType == STRING
    input.Body.InstanceFamily == STRING
    input.Body.HostMaintenance == enum_HostMaintenance[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyIdFormat

valid {
    input.Body.Resource == STRING
    input.Body.UseLongIds == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyIdentityIdFormat

valid {
    input.Body.principalArn == STRING
    input.Body.resource == STRING
    input.Body.useLongIds == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyImageAttribute

enum_OperationType := [ "add", "remove" ]
enum_PermissionGroup := [ "all" ]

valid {
    input.Body.Attribute == STRING
    input.Body.Description.value == STRING
    input.Body.ImageId == STRING
    input.Body.LaunchPermission.Add[_].group == enum_PermissionGroup[_]
    input.Body.LaunchPermission.Add[_].userId == STRING
    input.Body.LaunchPermission.Add[_].organizationArn == STRING
    input.Body.LaunchPermission.Add[_].organizationalUnitArn == STRING
    input.Body.LaunchPermission.Remove[_].group == enum_PermissionGroup[_]
    input.Body.LaunchPermission.Remove[_].userId == STRING
    input.Body.LaunchPermission.Remove[_].organizationArn == STRING
    input.Body.LaunchPermission.Remove[_].organizationalUnitArn == STRING
    input.Body.OperationType == enum_OperationType[_]
    input.Body.ProductCode[_] == STRING
    input.Body.UserGroup[_] == STRING
    input.Body.UserId[_] == STRING
    input.Body.Value == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.OrganizationArn[_] == STRING
    input.Body.OrganizationalUnitArn[_] == STRING
    input.Body.ImdsSupport.value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceAttribute

enum_InstanceAttributeName := [ "instanceType", "kernel", "ramdisk", "userData", "disableApiTermination", "instanceInitiatedShutdownBehavior", "rootDeviceName", "blockDeviceMapping", "productCodes", "sourceDestCheck", "groupSet", "ebsOptimized", "sriovNetSupport", "enaSupport", "enclaveOptions", "disableApiStop" ]

valid {
    input.Body.SourceDestCheck.value == BOOLEAN
    input.Body.attribute == enum_InstanceAttributeName[_]
    input.Body.blockDeviceMapping[_].deviceName == STRING
    input.Body.blockDeviceMapping[_].ebs.deleteOnTermination == BOOLEAN
    input.Body.blockDeviceMapping[_].ebs.volumeId == STRING
    input.Body.blockDeviceMapping[_].noDevice == STRING
    input.Body.blockDeviceMapping[_].virtualName == STRING
    input.Body.disableApiTermination.value == BOOLEAN
    input.Body.dryRun == BOOLEAN
    input.Body.ebsOptimized.value == BOOLEAN
    input.Body.enaSupport.value == BOOLEAN
    input.Body.GroupId[_] == STRING
    input.Body.instanceId == STRING
    input.Body.instanceInitiatedShutdownBehavior.value == STRING
    input.Body.instanceType.value == STRING
    input.Body.kernel.value == STRING
    input.Body.ramdisk.value == STRING
    input.Body.sriovNetSupport.value == STRING
    input.Body.userData.value == BLOB
    input.Body.value == STRING
    input.Body.DisableApiStop.value == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceCapacityReservationAttributes

enum_CapacityReservationPreference := [ "open", "none" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.CapacityReservationSpecification.CapacityReservationPreference == enum_CapacityReservationPreference[_]
    input.Body.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationId == STRING
    input.Body.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceCreditSpecification

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.InstanceCreditSpecification[_].InstanceId == STRING
    input.Body.InstanceCreditSpecification[_].CpuCredits == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceEventStartTime

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceId == STRING
    input.Body.InstanceEventId == STRING
    input.Body.NotBefore == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceEventWindow

enum_WeekDay := [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Name == STRING
    input.Body.InstanceEventWindowId == STRING
    input.Body.TimeRange[_].StartWeekDay == enum_WeekDay[_]
    input.Body.TimeRange[_].StartHour == INTEGER
    input.Body.TimeRange[_].EndWeekDay == enum_WeekDay[_]
    input.Body.TimeRange[_].EndHour == INTEGER
    input.Body.CronExpression == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceMaintenanceOptions

enum_InstanceAutoRecoveryState := [ "disabled", "default" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.AutoRecovery == enum_InstanceAutoRecoveryState[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceMetadataDefaults

enum_DefaultInstanceMetadataEndpointState := [ "disabled", "enabled", "no-preference" ]
enum_DefaultInstanceMetadataTagsState := [ "disabled", "enabled", "no-preference" ]
enum_MetadataDefaultHttpTokensState := [ "optional", "required", "no-preference" ]

valid {
    input.Body.HttpTokens == enum_MetadataDefaultHttpTokensState[_]
    input.Body.HttpPutResponseHopLimit == INTEGER
    input.Body.HttpEndpoint == enum_DefaultInstanceMetadataEndpointState[_]
    input.Body.InstanceMetadataTags == enum_DefaultInstanceMetadataTagsState[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceMetadataOptions

enum_HttpTokensState := [ "optional", "required" ]
enum_InstanceMetadataEndpointState := [ "disabled", "enabled" ]
enum_InstanceMetadataProtocolState := [ "disabled", "enabled" ]
enum_InstanceMetadataTagsState := [ "disabled", "enabled" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.HttpTokens == enum_HttpTokensState[_]
    input.Body.HttpPutResponseHopLimit == INTEGER
    input.Body.HttpEndpoint == enum_InstanceMetadataEndpointState[_]
    input.Body.DryRun == BOOLEAN
    input.Body.HttpProtocolIpv6 == enum_InstanceMetadataProtocolState[_]
    input.Body.InstanceMetadataTags == enum_InstanceMetadataTagsState[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstancePlacement

enum_Affinity := [ "default", "host" ]
enum_HostTenancy := [ "dedicated", "host" ]

valid {
    input.Body.affinity == enum_Affinity[_]
    input.Body.GroupName == STRING
    input.Body.hostId == STRING
    input.Body.instanceId == STRING
    input.Body.tenancy == enum_HostTenancy[_]
    input.Body.PartitionNumber == INTEGER
    input.Body.HostResourceGroupArn == STRING
    input.Body.GroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyIpam

enum_IpamTier := [ "free", "advanced" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamId == STRING
    input.Body.Description == STRING
    input.Body.AddOperatingRegion[_].RegionName == STRING
    input.Body.RemoveOperatingRegion[_].RegionName == STRING
    input.Body.Tier == enum_IpamTier[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyIpamPool

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.Description == STRING
    input.Body.AutoImport == BOOLEAN
    input.Body.AllocationMinNetmaskLength == INTEGER
    input.Body.AllocationMaxNetmaskLength == INTEGER
    input.Body.AllocationDefaultNetmaskLength == INTEGER
    input.Body.ClearAllocationDefaultNetmaskLength == BOOLEAN
    input.Body.AddAllocationResourceTag[_].Key == STRING
    input.Body.AddAllocationResourceTag[_].Value == STRING
    input.Body.RemoveAllocationResourceTag[_].Key == STRING
    input.Body.RemoveAllocationResourceTag[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyIpamResourceCidr

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ResourceId == STRING
    input.Body.ResourceCidr == STRING
    input.Body.ResourceRegion == STRING
    input.Body.CurrentIpamScopeId == STRING
    input.Body.DestinationIpamScopeId == STRING
    input.Body.Monitored == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyIpamResourceDiscovery

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamResourceDiscoveryId == STRING
    input.Body.Description == STRING
    input.Body.AddOperatingRegion[_].RegionName == STRING
    input.Body.RemoveOperatingRegion[_].RegionName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyIpamScope

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamScopeId == STRING
    input.Body.Description == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyLaunchTemplate

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.LaunchTemplateId == STRING
    input.Body.LaunchTemplateName == STRING
    input.Body.SetDefaultVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyLocalGatewayRoute

valid {
    input.Body.DestinationCidrBlock == STRING
    input.Body.LocalGatewayRouteTableId == STRING
    input.Body.LocalGatewayVirtualInterfaceGroupId == STRING
    input.Body.NetworkInterfaceId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.DestinationPrefixListId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyManagedPrefixList

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.PrefixListId == STRING
    input.Body.CurrentVersion == LONG
    input.Body.PrefixListName == STRING
    input.Body.AddEntry[_].Cidr == STRING
    input.Body.AddEntry[_].Description == STRING
    input.Body.RemoveEntry[_].Cidr == STRING
    input.Body.MaxEntries == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyNetworkInterfaceAttribute

valid {
    input.Body.attachment.attachmentId == STRING
    input.Body.attachment.deleteOnTermination == BOOLEAN
    input.Body.description.value == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.SecurityGroupId[_] == STRING
    input.Body.networkInterfaceId == STRING
    input.Body.sourceDestCheck.value == BOOLEAN
    input.Body.EnaSrdSpecification.EnaSrdEnabled == BOOLEAN
    input.Body.EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled == BOOLEAN
    input.Body.EnablePrimaryIpv6 == BOOLEAN
    input.Body.ConnectionTrackingSpecification.TcpEstablishedTimeout == INTEGER
    input.Body.ConnectionTrackingSpecification.UdpStreamTimeout == INTEGER
    input.Body.ConnectionTrackingSpecification.UdpTimeout == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyPrivateDnsNameOptions

enum_HostnameType := [ "ip-name", "resource-name" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceId == STRING
    input.Body.PrivateDnsHostnameType == enum_HostnameType[_]
    input.Body.EnableResourceNameDnsARecord == BOOLEAN
    input.Body.EnableResourceNameDnsAAAARecord == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyReservedInstances

enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_scope := [ "Availability Zone", "Region" ]

valid {
    input.Body.ReservedInstancesId[_] == STRING
    input.Body.clientToken == STRING
    input.Body.ReservedInstancesConfigurationSetItemType[_].availabilityZone == STRING
    input.Body.ReservedInstancesConfigurationSetItemType[_].instanceCount == INTEGER
    input.Body.ReservedInstancesConfigurationSetItemType[_].instanceType == enum_InstanceType[_]
    input.Body.ReservedInstancesConfigurationSetItemType[_].platform == STRING
    input.Body.ReservedInstancesConfigurationSetItemType[_].scope == enum_scope[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifySecurityGroupRules

valid {
    input.Body.GroupId == STRING
    input.Body.SecurityGroupRule[_].SecurityGroupRuleId == STRING
    input.Body.SecurityGroupRule[_].SecurityGroupRule.IpProtocol == STRING
    input.Body.SecurityGroupRule[_].SecurityGroupRule.FromPort == INTEGER
    input.Body.SecurityGroupRule[_].SecurityGroupRule.ToPort == INTEGER
    input.Body.SecurityGroupRule[_].SecurityGroupRule.CidrIpv4 == STRING
    input.Body.SecurityGroupRule[_].SecurityGroupRule.CidrIpv6 == STRING
    input.Body.SecurityGroupRule[_].SecurityGroupRule.PrefixListId == STRING
    input.Body.SecurityGroupRule[_].SecurityGroupRule.ReferencedGroupId == STRING
    input.Body.SecurityGroupRule[_].SecurityGroupRule.Description == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifySnapshotAttribute

enum_OperationType := [ "add", "remove" ]
enum_PermissionGroup := [ "all" ]
enum_SnapshotAttributeName := [ "productCodes", "createVolumePermission" ]

valid {
    input.Body.Attribute == enum_SnapshotAttributeName[_]
    input.Body.CreateVolumePermission.Add[_].group == enum_PermissionGroup[_]
    input.Body.CreateVolumePermission.Add[_].userId == STRING
    input.Body.CreateVolumePermission.Remove[_].group == enum_PermissionGroup[_]
    input.Body.CreateVolumePermission.Remove[_].userId == STRING
    input.Body.UserGroup[_] == STRING
    input.Body.OperationType == enum_OperationType[_]
    input.Body.SnapshotId == STRING
    input.Body.UserId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifySnapshotTier

enum_TargetStorageTier := [ "archive" ]

valid {
    input.Body.SnapshotId == STRING
    input.Body.StorageTier == enum_TargetStorageTier[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifySpotFleetRequest

enum_AcceleratorManufacturer := [ "amazon-web-services", "amd", "nvidia", "xilinx", "habana" ]
enum_AcceleratorName := [ "a100", "inferentia", "k520", "k80", "m60", "radeon-pro-v520", "t4", "vu9p", "v100", "a10g", "h100", "t4g" ]
enum_AcceleratorType := [ "gpu", "fpga", "inference" ]
enum_BareMetal := [ "included", "required", "excluded" ]
enum_BurstablePerformance := [ "included", "required", "excluded" ]
enum_CpuManufacturer := [ "intel", "amd", "amazon-web-services" ]
enum_ExcessCapacityTerminationPolicy := [ "noTermination", "default" ]
enum_InstanceGeneration := [ "current", "previous" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_LocalStorage := [ "included", "required", "excluded" ]
enum_LocalStorageType := [ "hdd", "ssd" ]

valid {
    input.Body.excessCapacityTerminationPolicy == enum_ExcessCapacityTerminationPolicy[_]
    input.Body.LaunchTemplateConfig[_].launchTemplateSpecification.launchTemplateId == STRING
    input.Body.LaunchTemplateConfig[_].launchTemplateSpecification.launchTemplateName == STRING
    input.Body.LaunchTemplateConfig[_].launchTemplateSpecification.version == STRING
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceType == enum_InstanceType[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].spotPrice == STRING
    input.Body.LaunchTemplateConfig[_].overrides[_].subnetId == STRING
    input.Body.LaunchTemplateConfig[_].overrides[_].availabilityZone == STRING
    input.Body.LaunchTemplateConfig[_].overrides[_].weightedCapacity == DOUBLE
    input.Body.LaunchTemplateConfig[_].overrides[_].priority == DOUBLE
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.vCpuCount.min == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.vCpuCount.max == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.memoryMiB.min == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.memoryMiB.max == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.cpuManufacturerSet[_] == enum_CpuManufacturer[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.memoryGiBPerVCpu.min == DOUBLE
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.memoryGiBPerVCpu.max == DOUBLE
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.excludedInstanceTypeSet[_] == STRING
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.instanceGenerationSet[_] == enum_InstanceGeneration[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.spotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.onDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.bareMetal == enum_BareMetal[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.burstablePerformance == enum_BurstablePerformance[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.requireHibernateSupport == BOOLEAN
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.networkInterfaceCount.min == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.networkInterfaceCount.max == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.localStorage == enum_LocalStorage[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.localStorageTypeSet[_] == enum_LocalStorageType[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.totalLocalStorageGB.min == DOUBLE
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.totalLocalStorageGB.max == DOUBLE
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.baselineEbsBandwidthMbps.min == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.baselineEbsBandwidthMbps.max == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.acceleratorTypeSet[_] == enum_AcceleratorType[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.acceleratorCount.min == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.acceleratorCount.max == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.acceleratorManufacturerSet[_] == enum_AcceleratorManufacturer[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.acceleratorNameSet[_] == enum_AcceleratorName[_]
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.acceleratorTotalMemoryMiB.min == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.acceleratorTotalMemoryMiB.max == INTEGER
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.networkBandwidthGbps.min == DOUBLE
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.networkBandwidthGbps.max == DOUBLE
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.allowedInstanceTypeSet[_] == STRING
    input.Body.LaunchTemplateConfig[_].overrides[_].instanceRequirements.maxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.spotFleetRequestId == STRING
    input.Body.targetCapacity == INTEGER
    input.Body.OnDemandTargetCapacity == INTEGER
    input.Body.Context == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifySubnetAttribute

enum_HostnameType := [ "ip-name", "resource-name" ]

valid {
    input.Body.AssignIpv6AddressOnCreation.value == BOOLEAN
    input.Body.MapPublicIpOnLaunch.value == BOOLEAN
    input.Body.subnetId == STRING
    input.Body.MapCustomerOwnedIpOnLaunch.value == BOOLEAN
    input.Body.CustomerOwnedIpv4Pool == STRING
    input.Body.EnableDns64.value == BOOLEAN
    input.Body.PrivateDnsHostnameTypeOnLaunch == enum_HostnameType[_]
    input.Body.EnableResourceNameDnsARecordOnLaunch.value == BOOLEAN
    input.Body.EnableResourceNameDnsAAAARecordOnLaunch.value == BOOLEAN
    input.Body.EnableLniAtDeviceIndex == INTEGER
    input.Body.DisableLniAtDeviceIndex.value == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyTrafficMirrorFilterNetworkServices

enum_TrafficMirrorNetworkService := [ "amazon-dns" ]

valid {
    input.Body.TrafficMirrorFilterId == STRING
    input.Body.AddNetworkService[_] == enum_TrafficMirrorNetworkService[_]
    input.Body.RemoveNetworkService[_] == enum_TrafficMirrorNetworkService[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyTrafficMirrorFilterRule

enum_TrafficDirection := [ "ingress", "egress" ]
enum_TrafficMirrorFilterRuleField := [ "destination-port-range", "source-port-range", "protocol", "description" ]
enum_TrafficMirrorRuleAction := [ "accept", "reject" ]

valid {
    input.Body.TrafficMirrorFilterRuleId == STRING
    input.Body.TrafficDirection == enum_TrafficDirection[_]
    input.Body.RuleNumber == INTEGER
    input.Body.RuleAction == enum_TrafficMirrorRuleAction[_]
    input.Body.DestinationPortRange.FromPort == INTEGER
    input.Body.DestinationPortRange.ToPort == INTEGER
    input.Body.SourcePortRange.FromPort == INTEGER
    input.Body.SourcePortRange.ToPort == INTEGER
    input.Body.Protocol == INTEGER
    input.Body.DestinationCidrBlock == STRING
    input.Body.SourceCidrBlock == STRING
    input.Body.Description == STRING
    input.Body.RemoveField[_] == enum_TrafficMirrorFilterRuleField[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyTrafficMirrorSession

enum_TrafficMirrorSessionField := [ "packet-length", "description", "virtual-network-id" ]

valid {
    input.Body.TrafficMirrorSessionId == STRING
    input.Body.TrafficMirrorTargetId == STRING
    input.Body.TrafficMirrorFilterId == STRING
    input.Body.PacketLength == INTEGER
    input.Body.SessionNumber == INTEGER
    input.Body.VirtualNetworkId == INTEGER
    input.Body.Description == STRING
    input.Body.RemoveField[_] == enum_TrafficMirrorSessionField[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyTransitGateway

enum_AutoAcceptSharedAttachmentsValue := [ "enable", "disable" ]
enum_DefaultRouteTableAssociationValue := [ "enable", "disable" ]
enum_DefaultRouteTablePropagationValue := [ "enable", "disable" ]
enum_DnsSupportValue := [ "enable", "disable" ]
enum_SecurityGroupReferencingSupportValue := [ "enable", "disable" ]
enum_VpnEcmpSupportValue := [ "enable", "disable" ]

valid {
    input.Body.TransitGatewayId == STRING
    input.Body.Description == STRING
    input.Body.Options.AddTransitGatewayCidrBlocks[_] == STRING
    input.Body.Options.RemoveTransitGatewayCidrBlocks[_] == STRING
    input.Body.Options.VpnEcmpSupport == enum_VpnEcmpSupportValue[_]
    input.Body.Options.DnsSupport == enum_DnsSupportValue[_]
    input.Body.Options.SecurityGroupReferencingSupport == enum_SecurityGroupReferencingSupportValue[_]
    input.Body.Options.AutoAcceptSharedAttachments == enum_AutoAcceptSharedAttachmentsValue[_]
    input.Body.Options.DefaultRouteTableAssociation == enum_DefaultRouteTableAssociationValue[_]
    input.Body.Options.AssociationDefaultRouteTableId == STRING
    input.Body.Options.DefaultRouteTablePropagation == enum_DefaultRouteTablePropagationValue[_]
    input.Body.Options.PropagationDefaultRouteTableId == STRING
    input.Body.Options.AmazonSideAsn == LONG
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyTransitGatewayPrefixListReference

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.PrefixListId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.Blackhole == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyTransitGatewayVpcAttachment

enum_ApplianceModeSupportValue := [ "enable", "disable" ]
enum_DnsSupportValue := [ "enable", "disable" ]
enum_Ipv6SupportValue := [ "enable", "disable" ]
enum_SecurityGroupReferencingSupportValue := [ "enable", "disable" ]

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.AddSubnetIds[_] == STRING
    input.Body.RemoveSubnetIds[_] == STRING
    input.Body.Options.DnsSupport == enum_DnsSupportValue[_]
    input.Body.Options.SecurityGroupReferencingSupport == enum_SecurityGroupReferencingSupportValue[_]
    input.Body.Options.Ipv6Support == enum_Ipv6SupportValue[_]
    input.Body.Options.ApplianceModeSupport == enum_ApplianceModeSupportValue[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVerifiedAccessEndpoint

enum_VerifiedAccessEndpointProtocol := [ "http", "https" ]

valid {
    input.Body.VerifiedAccessEndpointId == STRING
    input.Body.VerifiedAccessGroupId == STRING
    input.Body.LoadBalancerOptions.SubnetId[_] == STRING
    input.Body.LoadBalancerOptions.Protocol == enum_VerifiedAccessEndpointProtocol[_]
    input.Body.LoadBalancerOptions.Port == INTEGER
    input.Body.NetworkInterfaceOptions.Protocol == enum_VerifiedAccessEndpointProtocol[_]
    input.Body.NetworkInterfaceOptions.Port == INTEGER
    input.Body.Description == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVerifiedAccessEndpointPolicy

valid {
    input.Body.VerifiedAccessEndpointId == STRING
    input.Body.PolicyEnabled == BOOLEAN
    input.Body.PolicyDocument == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.SseSpecification.CustomerManagedKeyEnabled == BOOLEAN
    input.Body.SseSpecification.KmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVerifiedAccessGroup

valid {
    input.Body.VerifiedAccessGroupId == STRING
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.Description == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVerifiedAccessGroupPolicy

valid {
    input.Body.VerifiedAccessGroupId == STRING
    input.Body.PolicyEnabled == BOOLEAN
    input.Body.PolicyDocument == STRING
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.SseSpecification.CustomerManagedKeyEnabled == BOOLEAN
    input.Body.SseSpecification.KmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVerifiedAccessInstance

valid {
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.Description == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVerifiedAccessInstanceLoggingConfiguration

valid {
    input.Body.VerifiedAccessInstanceId == STRING
    input.Body.AccessLogs.S3.Enabled == BOOLEAN
    input.Body.AccessLogs.S3.BucketName == STRING
    input.Body.AccessLogs.S3.Prefix == STRING
    input.Body.AccessLogs.S3.BucketOwner == STRING
    input.Body.AccessLogs.CloudWatchLogs.Enabled == BOOLEAN
    input.Body.AccessLogs.CloudWatchLogs.LogGroup == STRING
    input.Body.AccessLogs.KinesisDataFirehose.Enabled == BOOLEAN
    input.Body.AccessLogs.KinesisDataFirehose.DeliveryStream == STRING
    input.Body.AccessLogs.LogVersion == STRING
    input.Body.AccessLogs.IncludeTrustContext == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVerifiedAccessTrustProvider

valid {
    input.Body.VerifiedAccessTrustProviderId == STRING
    input.Body.OidcOptions.Issuer == STRING
    input.Body.OidcOptions.AuthorizationEndpoint == STRING
    input.Body.OidcOptions.TokenEndpoint == STRING
    input.Body.OidcOptions.UserInfoEndpoint == STRING
    input.Body.OidcOptions.ClientId == STRING
    input.Body.OidcOptions.ClientSecret == STRING
    input.Body.OidcOptions.Scope == STRING
    input.Body.DeviceOptions.PublicSigningKeyUrl == STRING
    input.Body.Description == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.SseSpecification.CustomerManagedKeyEnabled == BOOLEAN
    input.Body.SseSpecification.KmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVolume

enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.VolumeId == STRING
    input.Body.Size == INTEGER
    input.Body.VolumeType == enum_VolumeType[_]
    input.Body.Iops == INTEGER
    input.Body.Throughput == INTEGER
    input.Body.MultiAttachEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVolumeAttribute

valid {
    input.Body.AutoEnableIO.value == BOOLEAN
    input.Body.VolumeId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpcAttribute

valid {
    input.Body.EnableDnsHostnames.value == BOOLEAN
    input.Body.EnableDnsSupport.value == BOOLEAN
    input.Body.vpcId == STRING
    input.Body.EnableNetworkAddressUsageMetrics.value == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpcEndpoint

enum_DnsRecordIpType := [ "ipv4", "dualstack", "ipv6", "service-defined" ]
enum_IpAddressType := [ "ipv4", "dualstack", "ipv6" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.VpcEndpointId == STRING
    input.Body.ResetPolicy == BOOLEAN
    input.Body.PolicyDocument == STRING
    input.Body.AddRouteTableId[_] == STRING
    input.Body.RemoveRouteTableId[_] == STRING
    input.Body.AddSubnetId[_] == STRING
    input.Body.RemoveSubnetId[_] == STRING
    input.Body.AddSecurityGroupId[_] == STRING
    input.Body.RemoveSecurityGroupId[_] == STRING
    input.Body.IpAddressType == enum_IpAddressType[_]
    input.Body.DnsOptions.DnsRecordIpType == enum_DnsRecordIpType[_]
    input.Body.DnsOptions.PrivateDnsOnlyForInboundResolverEndpoint == BOOLEAN
    input.Body.PrivateDnsEnabled == BOOLEAN
    input.Body.SubnetConfiguration[_].SubnetId == STRING
    input.Body.SubnetConfiguration[_].Ipv4 == STRING
    input.Body.SubnetConfiguration[_].Ipv6 == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpcEndpointConnectionNotification

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ConnectionNotificationId == STRING
    input.Body.ConnectionNotificationArn == STRING
    input.Body.ConnectionEvents[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpcEndpointServiceConfiguration

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId == STRING
    input.Body.PrivateDnsName == STRING
    input.Body.RemovePrivateDnsName == BOOLEAN
    input.Body.AcceptanceRequired == BOOLEAN
    input.Body.AddNetworkLoadBalancerArn[_] == STRING
    input.Body.RemoveNetworkLoadBalancerArn[_] == STRING
    input.Body.AddGatewayLoadBalancerArn[_] == STRING
    input.Body.RemoveGatewayLoadBalancerArn[_] == STRING
    input.Body.AddSupportedIpAddressType[_] == STRING
    input.Body.RemoveSupportedIpAddressType[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpcEndpointServicePayerResponsibility

enum_PayerResponsibility := [ "ServiceOwner" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId == STRING
    input.Body.PayerResponsibility == enum_PayerResponsibility[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpcEndpointServicePermissions

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId == STRING
    input.Body.AddAllowedPrincipals[_] == STRING
    input.Body.RemoveAllowedPrincipals[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpcPeeringConnectionOptions

valid {
    input.Body.AccepterPeeringConnectionOptions.AllowDnsResolutionFromRemoteVpc == BOOLEAN
    input.Body.AccepterPeeringConnectionOptions.AllowEgressFromLocalClassicLinkToRemoteVpc == BOOLEAN
    input.Body.AccepterPeeringConnectionOptions.AllowEgressFromLocalVpcToRemoteClassicLink == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.Body.RequesterPeeringConnectionOptions.AllowDnsResolutionFromRemoteVpc == BOOLEAN
    input.Body.RequesterPeeringConnectionOptions.AllowEgressFromLocalClassicLinkToRemoteVpc == BOOLEAN
    input.Body.RequesterPeeringConnectionOptions.AllowEgressFromLocalVpcToRemoteClassicLink == BOOLEAN
    input.Body.VpcPeeringConnectionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpcTenancy

enum_VpcTenancy := [ "default" ]

valid {
    input.Body.VpcId == STRING
    input.Body.InstanceTenancy == enum_VpcTenancy[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpnConnection

valid {
    input.Body.VpnConnectionId == STRING
    input.Body.TransitGatewayId == STRING
    input.Body.CustomerGatewayId == STRING
    input.Body.VpnGatewayId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpnConnectionOptions

valid {
    input.Body.VpnConnectionId == STRING
    input.Body.LocalIpv4NetworkCidr == STRING
    input.Body.RemoteIpv4NetworkCidr == STRING
    input.Body.LocalIpv6NetworkCidr == STRING
    input.Body.RemoteIpv6NetworkCidr == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpnTunnelCertificate

valid {
    input.Body.VpnConnectionId == STRING
    input.Body.VpnTunnelOutsideIpAddress == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyVpnTunnelOptions

valid {
    input.Body.VpnConnectionId == STRING
    input.Body.VpnTunnelOutsideIpAddress == STRING
    input.Body.TunnelOptions.TunnelInsideCidr == STRING
    input.Body.TunnelOptions.TunnelInsideIpv6Cidr == STRING
    input.Body.TunnelOptions.PreSharedKey == STRING
    input.Body.TunnelOptions.Phase1LifetimeSeconds == INTEGER
    input.Body.TunnelOptions.Phase2LifetimeSeconds == INTEGER
    input.Body.TunnelOptions.RekeyMarginTimeSeconds == INTEGER
    input.Body.TunnelOptions.RekeyFuzzPercentage == INTEGER
    input.Body.TunnelOptions.ReplayWindowSize == INTEGER
    input.Body.TunnelOptions.DPDTimeoutSeconds == INTEGER
    input.Body.TunnelOptions.DPDTimeoutAction == STRING
    input.Body.TunnelOptions.Phase1EncryptionAlgorithm[_].Value == STRING
    input.Body.TunnelOptions.Phase2EncryptionAlgorithm[_].Value == STRING
    input.Body.TunnelOptions.Phase1IntegrityAlgorithm[_].Value == STRING
    input.Body.TunnelOptions.Phase2IntegrityAlgorithm[_].Value == STRING
    input.Body.TunnelOptions.Phase1DHGroupNumber[_].Value == INTEGER
    input.Body.TunnelOptions.Phase2DHGroupNumber[_].Value == INTEGER
    input.Body.TunnelOptions.IKEVersion[_].Value == STRING
    input.Body.TunnelOptions.StartupAction == STRING
    input.Body.TunnelOptions.LogOptions.CloudWatchLogOptions.LogEnabled == BOOLEAN
    input.Body.TunnelOptions.LogOptions.CloudWatchLogOptions.LogGroupArn == STRING
    input.Body.TunnelOptions.LogOptions.CloudWatchLogOptions.LogOutputFormat == STRING
    input.Body.TunnelOptions.EnableTunnelLifecycleControl == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.Body.SkipTunnelReplacement == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

MonitorInstances

valid {
    input.Body.InstanceId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

MoveAddressToVpc

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.publicIp == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

MoveByoipCidrToIpam

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.Cidr == STRING
    input.Body.IpamPoolId == STRING
    input.Body.IpamPoolOwner == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ProvisionByoipCidr

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.Cidr == STRING
    input.Body.CidrAuthorizationContext.Message == STRING
    input.Body.CidrAuthorizationContext.Signature == STRING
    input.Body.PubliclyAdvertisable == BOOLEAN
    input.Body.Description == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.PoolTagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.PoolTagSpecification[_].Tag[_].key == STRING
    input.Body.PoolTagSpecification[_].Tag[_].value == STRING
    input.Body.MultiRegion == BOOLEAN
    input.Body.NetworkBorderGroup == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ProvisionIpamByoasn

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamId == STRING
    input.Body.Asn == STRING
    input.Body.AsnAuthorizationContext.Message == STRING
    input.Body.AsnAuthorizationContext.Signature == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ProvisionIpamPoolCidr

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.Cidr == STRING
    input.Body.CidrAuthorizationContext.Message == STRING
    input.Body.CidrAuthorizationContext.Signature == STRING
    input.Body.NetmaskLength == INTEGER
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ProvisionPublicIpv4PoolCidr

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.PoolId == STRING
    input.Body.NetmaskLength == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PurchaseCapacityBlock

enum_CapacityReservationInstancePlatform := [ "Linux/UNIX", "Red Hat Enterprise Linux", "SUSE Linux", "Windows", "Windows with SQL Server", "Windows with SQL Server Enterprise", "Windows with SQL Server Standard", "Windows with SQL Server Web", "Linux with SQL Server Standard", "Linux with SQL Server Web", "Linux with SQL Server Enterprise", "RHEL with SQL Server Standard", "RHEL with SQL Server Enterprise", "RHEL with SQL Server Web", "RHEL with HA", "RHEL with HA and SQL Server Standard", "RHEL with HA and SQL Server Enterprise", "Ubuntu Pro" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.CapacityBlockOfferingId == STRING
    input.Body.InstancePlatform == enum_CapacityReservationInstancePlatform[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PurchaseHostReservation

enum_CurrencyCodeValues := [ "USD" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.CurrencyCode == enum_CurrencyCodeValues[_]
    input.Body.HostIdSet[_] == STRING
    input.Body.LimitPrice == STRING
    input.Body.OfferingId == STRING
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PurchaseReservedInstancesOffering

enum_CurrencyCodeValues := [ "USD" ]

valid {
    input.Body.InstanceCount == INTEGER
    input.Body.ReservedInstancesOfferingId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.limitPrice.amount == DOUBLE
    input.Body.limitPrice.currencyCode == enum_CurrencyCodeValues[_]
    input.Body.PurchaseTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PurchaseScheduledInstances

valid {
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.PurchaseRequest[_].InstanceCount == INTEGER
    input.Body.PurchaseRequest[_].PurchaseToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RebootInstances

valid {
    input.Body.InstanceId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterImage

enum_ArchitectureValues := [ "i386", "x86_64", "arm64", "x86_64_mac", "arm64_mac" ]
enum_BootModeValues := [ "legacy-bios", "uefi", "uefi-preferred" ]
enum_ImdsSupportValues := [ "v2.0" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_TpmSupportValues := [ "v2.0" ]
enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.ImageLocation == STRING
    input.Body.architecture == enum_ArchitectureValues[_]
    input.Body.BlockDeviceMapping[_].deviceName == STRING
    input.Body.BlockDeviceMapping[_].virtualName == STRING
    input.Body.BlockDeviceMapping[_].ebs.deleteOnTermination == BOOLEAN
    input.Body.BlockDeviceMapping[_].ebs.iops == INTEGER
    input.Body.BlockDeviceMapping[_].ebs.snapshotId == STRING
    input.Body.BlockDeviceMapping[_].ebs.volumeSize == INTEGER
    input.Body.BlockDeviceMapping[_].ebs.volumeType == enum_VolumeType[_]
    input.Body.BlockDeviceMapping[_].ebs.kmsKeyId == STRING
    input.Body.BlockDeviceMapping[_].ebs.throughput == INTEGER
    input.Body.BlockDeviceMapping[_].ebs.outpostArn == STRING
    input.Body.BlockDeviceMapping[_].ebs.encrypted == BOOLEAN
    input.Body.BlockDeviceMapping[_].noDevice == STRING
    input.Body.description == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.enaSupport == BOOLEAN
    input.Body.kernelId == STRING
    input.Body.name == STRING
    input.Body.BillingProduct[_] == STRING
    input.Body.ramdiskId == STRING
    input.Body.rootDeviceName == STRING
    input.Body.sriovNetSupport == STRING
    input.Body.virtualizationType == STRING
    input.Body.BootMode == enum_BootModeValues[_]
    input.Body.TpmSupport == enum_TpmSupportValues[_]
    input.Body.UefiData == STRING
    input.Body.ImdsSupport == enum_ImdsSupportValues[_]
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterInstanceEventNotificationAttributes

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceTagAttribute.IncludeAllTagsOfInstance == BOOLEAN
    input.Body.InstanceTagAttribute.InstanceTagKey[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterTransitGatewayMulticastGroupMembers

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.GroupIpAddress == STRING
    input.Body.NetworkInterfaceIds[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterTransitGatewayMulticastGroupSources

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.GroupIpAddress == STRING
    input.Body.NetworkInterfaceIds[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RejectTransitGatewayMulticastDomainAssociations

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.SubnetIds[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RejectTransitGatewayPeeringAttachment

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RejectTransitGatewayVpcAttachment

valid {
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RejectVpcEndpointConnections

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId == STRING
    input.Body.VpcEndpointId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RejectVpcPeeringConnection

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.vpcPeeringConnectionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReleaseAddress

valid {
    input.Body.AllocationId == STRING
    input.Body.PublicIp == STRING
    input.Body.NetworkBorderGroup == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReleaseHosts

valid {
    input.Body.hostId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReleaseIpamPoolAllocation

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.IpamPoolId == STRING
    input.Body.Cidr == STRING
    input.Body.IpamPoolAllocationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReplaceIamInstanceProfileAssociation

valid {
    input.Body.IamInstanceProfile.arn == STRING
    input.Body.IamInstanceProfile.name == STRING
    input.Body.AssociationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReplaceNetworkAclAssociation

valid {
    input.Body.associationId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.networkAclId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReplaceNetworkAclEntry

enum_RuleAction := [ "allow", "deny" ]

valid {
    input.Body.cidrBlock == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.egress == BOOLEAN
    input.Body.Icmp.code == INTEGER
    input.Body.Icmp.type == INTEGER
    input.Body.ipv6CidrBlock == STRING
    input.Body.networkAclId == STRING
    input.Body.portRange.from == INTEGER
    input.Body.portRange.to == INTEGER
    input.Body.protocol == STRING
    input.Body.ruleAction == enum_RuleAction[_]
    input.Body.ruleNumber == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReplaceRoute

valid {
    input.Body.destinationCidrBlock == STRING
    input.Body.destinationIpv6CidrBlock == STRING
    input.Body.DestinationPrefixListId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.VpcEndpointId == STRING
    input.Body.egressOnlyInternetGatewayId == STRING
    input.Body.gatewayId == STRING
    input.Body.instanceId == STRING
    input.Body.LocalTarget == BOOLEAN
    input.Body.natGatewayId == STRING
    input.Body.TransitGatewayId == STRING
    input.Body.LocalGatewayId == STRING
    input.Body.CarrierGatewayId == STRING
    input.Body.networkInterfaceId == STRING
    input.Body.routeTableId == STRING
    input.Body.vpcPeeringConnectionId == STRING
    input.Body.CoreNetworkArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReplaceRouteTableAssociation

valid {
    input.Body.associationId == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.routeTableId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReplaceTransitGatewayRoute

valid {
    input.Body.DestinationCidrBlock == STRING
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.TransitGatewayAttachmentId == STRING
    input.Body.Blackhole == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReplaceVpnTunnel

valid {
    input.Body.VpnConnectionId == STRING
    input.Body.VpnTunnelOutsideIpAddress == STRING
    input.Body.ApplyPendingMaintenance == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ReportInstanceStatus

enum_ReportInstanceReasonCodes := [ "instance-stuck-in-state", "unresponsive", "not-accepting-credentials", "password-not-available", "performance-network", "performance-instance-store", "performance-ebs-volume", "performance-other", "other" ]
enum_ReportStatusType := [ "ok", "impaired" ]

valid {
    input.Body.description == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.endTime == TIMESTAMP
    input.Body.instanceId[_] == STRING
    input.Body.reasonCode[_] == enum_ReportInstanceReasonCodes[_]
    input.Body.startTime == TIMESTAMP
    input.Body.status == enum_ReportStatusType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RequestSpotFleet

enum_AcceleratorManufacturer := [ "amazon-web-services", "amd", "nvidia", "xilinx", "habana" ]
enum_AcceleratorName := [ "a100", "inferentia", "k520", "k80", "m60", "radeon-pro-v520", "t4", "vu9p", "v100", "a10g", "h100", "t4g" ]
enum_AcceleratorType := [ "gpu", "fpga", "inference" ]
enum_AllocationStrategy := [ "lowestPrice", "diversified", "capacityOptimized", "capacityOptimizedPrioritized", "priceCapacityOptimized" ]
enum_BareMetal := [ "included", "required", "excluded" ]
enum_BurstablePerformance := [ "included", "required", "excluded" ]
enum_CpuManufacturer := [ "intel", "amd", "amazon-web-services" ]
enum_ExcessCapacityTerminationPolicy := [ "noTermination", "default" ]
enum_FleetType := [ "request", "maintain", "instant" ]
enum_InstanceGeneration := [ "current", "previous" ]
enum_InstanceInterruptionBehavior := [ "hibernate", "stop", "terminate" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_LocalStorage := [ "included", "required", "excluded" ]
enum_LocalStorageType := [ "hdd", "ssd" ]
enum_OnDemandAllocationStrategy := [ "lowestPrice", "prioritized" ]
enum_ReplacementStrategy := [ "launch", "launch-before-terminate" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_TargetCapacityUnitType := [ "vcpu", "memory-mib", "units" ]
enum_Tenancy := [ "default", "dedicated", "host" ]
enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.spotFleetRequestConfig.allocationStrategy == enum_AllocationStrategy[_]
    input.Body.spotFleetRequestConfig.onDemandAllocationStrategy == enum_OnDemandAllocationStrategy[_]
    input.Body.spotFleetRequestConfig.spotMaintenanceStrategies.capacityRebalance.replacementStrategy == enum_ReplacementStrategy[_]
    input.Body.spotFleetRequestConfig.spotMaintenanceStrategies.capacityRebalance.terminationDelay == INTEGER
    input.Body.spotFleetRequestConfig.clientToken == STRING
    input.Body.spotFleetRequestConfig.excessCapacityTerminationPolicy == enum_ExcessCapacityTerminationPolicy[_]
    input.Body.spotFleetRequestConfig.fulfilledCapacity == DOUBLE
    input.Body.spotFleetRequestConfig.onDemandFulfilledCapacity == DOUBLE
    input.Body.spotFleetRequestConfig.iamFleetRole == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].groupSet[_].groupName == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].groupSet[_].groupId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].addressingType == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].deviceName == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].virtualName == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.deleteOnTermination == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.iops == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.snapshotId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.volumeSize == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.volumeType == enum_VolumeType[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.kmsKeyId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.throughput == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.outpostArn == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].ebs.encrypted == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].blockDeviceMapping[_].noDevice == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].ebsOptimized == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].iamInstanceProfile.arn == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].iamInstanceProfile.name == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].imageId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceType == enum_InstanceType[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].kernelId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].keyName == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].monitoring.enabled == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].associatePublicIpAddress == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].deleteOnTermination == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].description == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].deviceIndex == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].SecurityGroupId[_] == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].ipv6AddressCount == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].ipv6AddressesSet[_].ipv6Address == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].ipv6AddressesSet[_].isPrimaryIpv6 == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].networkInterfaceId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].privateIpAddress == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].privateIpAddressesSet[_].primary == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].privateIpAddressesSet[_].privateIpAddress == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].secondaryPrivateIpAddressCount == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].subnetId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].AssociateCarrierIpAddress == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].InterfaceType == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].NetworkCardIndex == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].Ipv4Prefix[_].Ipv4Prefix == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].Ipv4PrefixCount == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].Ipv6Prefix[_].Ipv6Prefix == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].Ipv6PrefixCount == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].PrimaryIpv6 == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].EnaSrdSpecification.EnaSrdEnabled == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].ConnectionTrackingSpecification.TcpEstablishedTimeout == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].ConnectionTrackingSpecification.UdpStreamTimeout == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].networkInterfaceSet[_].ConnectionTrackingSpecification.UdpTimeout == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].placement.availabilityZone == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].placement.groupName == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].placement.tenancy == enum_Tenancy[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].ramdiskId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].spotPrice == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].subnetId == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].userData == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].weightedCapacity == DOUBLE
    input.Body.spotFleetRequestConfig.launchSpecifications[_].tagSpecificationSet[_].resourceType == enum_ResourceType[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].tagSpecificationSet[_].tag[_].key == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].tagSpecificationSet[_].tag[_].value == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.vCpuCount.min == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.vCpuCount.max == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.memoryMiB.min == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.memoryMiB.max == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.cpuManufacturerSet[_] == enum_CpuManufacturer[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.memoryGiBPerVCpu.min == DOUBLE
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.memoryGiBPerVCpu.max == DOUBLE
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.excludedInstanceTypeSet[_] == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.instanceGenerationSet[_] == enum_InstanceGeneration[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.spotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.onDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.bareMetal == enum_BareMetal[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.burstablePerformance == enum_BurstablePerformance[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.requireHibernateSupport == BOOLEAN
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.networkInterfaceCount.min == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.networkInterfaceCount.max == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.localStorage == enum_LocalStorage[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.localStorageTypeSet[_] == enum_LocalStorageType[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.totalLocalStorageGB.min == DOUBLE
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.totalLocalStorageGB.max == DOUBLE
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.baselineEbsBandwidthMbps.min == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.baselineEbsBandwidthMbps.max == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.acceleratorTypeSet[_] == enum_AcceleratorType[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.acceleratorCount.min == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.acceleratorCount.max == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.acceleratorManufacturerSet[_] == enum_AcceleratorManufacturer[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.acceleratorNameSet[_] == enum_AcceleratorName[_]
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.acceleratorTotalMemoryMiB.min == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.acceleratorTotalMemoryMiB.max == INTEGER
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.networkBandwidthGbps.min == DOUBLE
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.networkBandwidthGbps.max == DOUBLE
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.allowedInstanceTypeSet[_] == STRING
    input.Body.spotFleetRequestConfig.launchSpecifications[_].instanceRequirements.maxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].launchTemplateSpecification.launchTemplateId == STRING
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].launchTemplateSpecification.launchTemplateName == STRING
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].launchTemplateSpecification.version == STRING
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceType == enum_InstanceType[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].spotPrice == STRING
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].subnetId == STRING
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].availabilityZone == STRING
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].weightedCapacity == DOUBLE
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].priority == DOUBLE
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.vCpuCount.min == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.vCpuCount.max == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.memoryMiB.min == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.memoryMiB.max == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.cpuManufacturerSet[_] == enum_CpuManufacturer[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.memoryGiBPerVCpu.min == DOUBLE
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.memoryGiBPerVCpu.max == DOUBLE
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.excludedInstanceTypeSet[_] == STRING
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.instanceGenerationSet[_] == enum_InstanceGeneration[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.spotMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.onDemandMaxPricePercentageOverLowestPrice == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.bareMetal == enum_BareMetal[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.burstablePerformance == enum_BurstablePerformance[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.requireHibernateSupport == BOOLEAN
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.networkInterfaceCount.min == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.networkInterfaceCount.max == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.localStorage == enum_LocalStorage[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.localStorageTypeSet[_] == enum_LocalStorageType[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.totalLocalStorageGB.min == DOUBLE
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.totalLocalStorageGB.max == DOUBLE
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.baselineEbsBandwidthMbps.min == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.baselineEbsBandwidthMbps.max == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.acceleratorTypeSet[_] == enum_AcceleratorType[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.acceleratorCount.min == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.acceleratorCount.max == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.acceleratorManufacturerSet[_] == enum_AcceleratorManufacturer[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.acceleratorNameSet[_] == enum_AcceleratorName[_]
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.acceleratorTotalMemoryMiB.min == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.acceleratorTotalMemoryMiB.max == INTEGER
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.networkBandwidthGbps.min == DOUBLE
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.networkBandwidthGbps.max == DOUBLE
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.allowedInstanceTypeSet[_] == STRING
    input.Body.spotFleetRequestConfig.launchTemplateConfigs[_].overrides[_].instanceRequirements.maxSpotPriceAsPercentageOfOptimalOnDemandPrice == INTEGER
    input.Body.spotFleetRequestConfig.spotPrice == STRING
    input.Body.spotFleetRequestConfig.targetCapacity == INTEGER
    input.Body.spotFleetRequestConfig.onDemandTargetCapacity == INTEGER
    input.Body.spotFleetRequestConfig.onDemandMaxTotalPrice == STRING
    input.Body.spotFleetRequestConfig.spotMaxTotalPrice == STRING
    input.Body.spotFleetRequestConfig.terminateInstancesWithExpiration == BOOLEAN
    input.Body.spotFleetRequestConfig.type == enum_FleetType[_]
    input.Body.spotFleetRequestConfig.validFrom == TIMESTAMP
    input.Body.spotFleetRequestConfig.validUntil == TIMESTAMP
    input.Body.spotFleetRequestConfig.replaceUnhealthyInstances == BOOLEAN
    input.Body.spotFleetRequestConfig.instanceInterruptionBehavior == enum_InstanceInterruptionBehavior[_]
    input.Body.spotFleetRequestConfig.loadBalancersConfig.classicLoadBalancersConfig.classicLoadBalancers[_].name == STRING
    input.Body.spotFleetRequestConfig.loadBalancersConfig.targetGroupsConfig.targetGroups[_].arn == STRING
    input.Body.spotFleetRequestConfig.instancePoolsToUseCount == INTEGER
    input.Body.spotFleetRequestConfig.context == STRING
    input.Body.spotFleetRequestConfig.targetCapacityUnitType == enum_TargetCapacityUnitType[_]
    input.Body.spotFleetRequestConfig.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.spotFleetRequestConfig.TagSpecification[_].Tag[_].key == STRING
    input.Body.spotFleetRequestConfig.TagSpecification[_].Tag[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RequestSpotInstances

enum_InstanceInterruptionBehavior := [ "hibernate", "stop", "terminate" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_SpotInstanceType := [ "one-time", "persistent" ]
enum_Tenancy := [ "default", "dedicated", "host" ]
enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.availabilityZoneGroup == STRING
    input.Body.blockDurationMinutes == INTEGER
    input.Body.clientToken == STRING
    input.Body.dryRun == BOOLEAN
    input.Body.instanceCount == INTEGER
    input.Body.launchGroup == STRING
    input.Body.LaunchSpecification.SecurityGroupId[_] == STRING
    input.Body.LaunchSpecification.SecurityGroup[_] == STRING
    input.Body.LaunchSpecification.addressingType == STRING
    input.Body.LaunchSpecification.blockDeviceMapping[_].deviceName == STRING
    input.Body.LaunchSpecification.blockDeviceMapping[_].virtualName == STRING
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.deleteOnTermination == BOOLEAN
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.iops == INTEGER
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.snapshotId == STRING
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.volumeSize == INTEGER
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.volumeType == enum_VolumeType[_]
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.kmsKeyId == STRING
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.throughput == INTEGER
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.outpostArn == STRING
    input.Body.LaunchSpecification.blockDeviceMapping[_].ebs.encrypted == BOOLEAN
    input.Body.LaunchSpecification.blockDeviceMapping[_].noDevice == STRING
    input.Body.LaunchSpecification.ebsOptimized == BOOLEAN
    input.Body.LaunchSpecification.iamInstanceProfile.arn == STRING
    input.Body.LaunchSpecification.iamInstanceProfile.name == STRING
    input.Body.LaunchSpecification.imageId == STRING
    input.Body.LaunchSpecification.instanceType == enum_InstanceType[_]
    input.Body.LaunchSpecification.kernelId == STRING
    input.Body.LaunchSpecification.keyName == STRING
    input.Body.LaunchSpecification.monitoring.enabled == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].associatePublicIpAddress == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].deleteOnTermination == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].description == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].deviceIndex == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].SecurityGroupId[_] == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].ipv6AddressCount == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].ipv6AddressesSet[_].ipv6Address == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].ipv6AddressesSet[_].isPrimaryIpv6 == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].networkInterfaceId == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].privateIpAddress == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].privateIpAddressesSet[_].primary == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].privateIpAddressesSet[_].privateIpAddress == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].secondaryPrivateIpAddressCount == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].subnetId == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].AssociateCarrierIpAddress == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].InterfaceType == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].NetworkCardIndex == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].Ipv4Prefix[_].Ipv4Prefix == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].Ipv4PrefixCount == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].Ipv6Prefix[_].Ipv6Prefix == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].Ipv6PrefixCount == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].PrimaryIpv6 == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].EnaSrdSpecification.EnaSrdEnabled == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].ConnectionTrackingSpecification.TcpEstablishedTimeout == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].ConnectionTrackingSpecification.UdpStreamTimeout == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].ConnectionTrackingSpecification.UdpTimeout == INTEGER
    input.Body.LaunchSpecification.placement.availabilityZone == STRING
    input.Body.LaunchSpecification.placement.groupName == STRING
    input.Body.LaunchSpecification.placement.tenancy == enum_Tenancy[_]
    input.Body.LaunchSpecification.ramdiskId == STRING
    input.Body.LaunchSpecification.subnetId == STRING
    input.Body.LaunchSpecification.userData == STRING
    input.Body.spotPrice == STRING
    input.Body.type == enum_SpotInstanceType[_]
    input.Body.validFrom == TIMESTAMP
    input.Body.validUntil == TIMESTAMP
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.InstanceInterruptionBehavior == enum_InstanceInterruptionBehavior[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetAddressAttribute

enum_AddressAttributeName := [ "domain-name" ]

valid {
    input.Body.AllocationId == STRING
    input.Body.Attribute == enum_AddressAttributeName[_]
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetEbsDefaultKmsKeyId

valid {
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetFpgaImageAttribute

enum_ResetFpgaImageAttributeName := [ "loadPermission" ]

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.FpgaImageId == STRING
    input.Body.Attribute == enum_ResetFpgaImageAttributeName[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetImageAttribute

enum_ResetImageAttributeName := [ "launchPermission" ]

valid {
    input.Body.Attribute == enum_ResetImageAttributeName[_]
    input.Body.ImageId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetInstanceAttribute

enum_InstanceAttributeName := [ "instanceType", "kernel", "ramdisk", "userData", "disableApiTermination", "instanceInitiatedShutdownBehavior", "rootDeviceName", "blockDeviceMapping", "productCodes", "sourceDestCheck", "groupSet", "ebsOptimized", "sriovNetSupport", "enaSupport", "enclaveOptions", "disableApiStop" ]

valid {
    input.Body.attribute == enum_InstanceAttributeName[_]
    input.Body.dryRun == BOOLEAN
    input.Body.instanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetNetworkInterfaceAttribute

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.networkInterfaceId == STRING
    input.Body.sourceDestCheck == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetSnapshotAttribute

enum_SnapshotAttributeName := [ "productCodes", "createVolumePermission" ]

valid {
    input.Body.Attribute == enum_SnapshotAttributeName[_]
    input.Body.SnapshotId == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreAddressToClassic

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.publicIp == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreImageFromRecycleBin

valid {
    input.Body.ImageId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreManagedPrefixListVersion

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.PrefixListId == STRING
    input.Body.PreviousVersion == LONG
    input.Body.CurrentVersion == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreSnapshotFromRecycleBin

valid {
    input.Body.SnapshotId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RestoreSnapshotTier

valid {
    input.Body.SnapshotId == STRING
    input.Body.TemporaryRestoreDays == INTEGER
    input.Body.PermanentRestore == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RevokeClientVpnIngress

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.TargetNetworkCidr == STRING
    input.Body.AccessGroupId == STRING
    input.Body.RevokeAllGroups == BOOLEAN
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RevokeSecurityGroupEgress

valid {
    input.Body.dryRun == BOOLEAN
    input.Body.groupId == STRING
    input.Body.ipPermissions[_].fromPort == INTEGER
    input.Body.ipPermissions[_].ipProtocol == STRING
    input.Body.ipPermissions[_].ipRanges[_].cidrIp == STRING
    input.Body.ipPermissions[_].ipRanges[_].description == STRING
    input.Body.ipPermissions[_].ipv6Ranges[_].cidrIpv6 == STRING
    input.Body.ipPermissions[_].ipv6Ranges[_].description == STRING
    input.Body.ipPermissions[_].prefixListIds[_].description == STRING
    input.Body.ipPermissions[_].prefixListIds[_].prefixListId == STRING
    input.Body.ipPermissions[_].toPort == INTEGER
    input.Body.ipPermissions[_].groups[_].description == STRING
    input.Body.ipPermissions[_].groups[_].groupId == STRING
    input.Body.ipPermissions[_].groups[_].groupName == STRING
    input.Body.ipPermissions[_].groups[_].peeringStatus == STRING
    input.Body.ipPermissions[_].groups[_].userId == STRING
    input.Body.ipPermissions[_].groups[_].vpcId == STRING
    input.Body.ipPermissions[_].groups[_].vpcPeeringConnectionId == STRING
    input.Body.SecurityGroupRuleId[_] == STRING
    input.Body.cidrIp == STRING
    input.Body.fromPort == INTEGER
    input.Body.ipProtocol == STRING
    input.Body.toPort == INTEGER
    input.Body.sourceSecurityGroupName == STRING
    input.Body.sourceSecurityGroupOwnerId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RevokeSecurityGroupIngress

valid {
    input.Body.CidrIp == STRING
    input.Body.FromPort == INTEGER
    input.Body.GroupId == STRING
    input.Body.GroupName == STRING
    input.Body.IpPermissions[_].fromPort == INTEGER
    input.Body.IpPermissions[_].ipProtocol == STRING
    input.Body.IpPermissions[_].ipRanges[_].cidrIp == STRING
    input.Body.IpPermissions[_].ipRanges[_].description == STRING
    input.Body.IpPermissions[_].ipv6Ranges[_].cidrIpv6 == STRING
    input.Body.IpPermissions[_].ipv6Ranges[_].description == STRING
    input.Body.IpPermissions[_].prefixListIds[_].description == STRING
    input.Body.IpPermissions[_].prefixListIds[_].prefixListId == STRING
    input.Body.IpPermissions[_].toPort == INTEGER
    input.Body.IpPermissions[_].groups[_].description == STRING
    input.Body.IpPermissions[_].groups[_].groupId == STRING
    input.Body.IpPermissions[_].groups[_].groupName == STRING
    input.Body.IpPermissions[_].groups[_].peeringStatus == STRING
    input.Body.IpPermissions[_].groups[_].userId == STRING
    input.Body.IpPermissions[_].groups[_].vpcId == STRING
    input.Body.IpPermissions[_].groups[_].vpcPeeringConnectionId == STRING
    input.Body.IpProtocol == STRING
    input.Body.SourceSecurityGroupName == STRING
    input.Body.SourceSecurityGroupOwnerId == STRING
    input.Body.ToPort == INTEGER
    input.Body.dryRun == BOOLEAN
    input.Body.SecurityGroupRuleId[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RunInstances

enum_AmdSevSnpSpecification := [ "enabled", "disabled" ]
enum_CapacityReservationPreference := [ "open", "none" ]
enum_HostnameType := [ "ip-name", "resource-name" ]
enum_HttpTokensState := [ "optional", "required" ]
enum_InstanceAutoRecoveryState := [ "disabled", "default" ]
enum_InstanceInterruptionBehavior := [ "hibernate", "stop", "terminate" ]
enum_InstanceMetadataEndpointState := [ "disabled", "enabled" ]
enum_InstanceMetadataProtocolState := [ "disabled", "enabled" ]
enum_InstanceMetadataTagsState := [ "disabled", "enabled" ]
enum_InstanceType := [ "a1.medium", "a1.large", "a1.xlarge", "a1.2xlarge", "a1.4xlarge", "a1.metal", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "c5.24xlarge", "c5.metal", "c5a.large", "c5a.xlarge", "c5a.2xlarge", "c5a.4xlarge", "c5a.8xlarge", "c5a.12xlarge", "c5a.16xlarge", "c5a.24xlarge", "c5ad.large", "c5ad.xlarge", "c5ad.2xlarge", "c5ad.4xlarge", "c5ad.8xlarge", "c5ad.12xlarge", "c5ad.16xlarge", "c5ad.24xlarge", "c5d.large", "c5d.xlarge", "c5d.2xlarge", "c5d.4xlarge", "c5d.9xlarge", "c5d.12xlarge", "c5d.18xlarge", "c5d.24xlarge", "c5d.metal", "c5n.large", "c5n.xlarge", "c5n.2xlarge", "c5n.4xlarge", "c5n.9xlarge", "c5n.18xlarge", "c5n.metal", "c6g.medium", "c6g.large", "c6g.xlarge", "c6g.2xlarge", "c6g.4xlarge", "c6g.8xlarge", "c6g.12xlarge", "c6g.16xlarge", "c6g.metal", "c6gd.medium", "c6gd.large", "c6gd.xlarge", "c6gd.2xlarge", "c6gd.4xlarge", "c6gd.8xlarge", "c6gd.12xlarge", "c6gd.16xlarge", "c6gd.metal", "c6gn.medium", "c6gn.large", "c6gn.xlarge", "c6gn.2xlarge", "c6gn.4xlarge", "c6gn.8xlarge", "c6gn.12xlarge", "c6gn.16xlarge", "c6i.large", "c6i.xlarge", "c6i.2xlarge", "c6i.4xlarge", "c6i.8xlarge", "c6i.12xlarge", "c6i.16xlarge", "c6i.24xlarge", "c6i.32xlarge", "c6i.metal", "cc1.4xlarge", "cc2.8xlarge", "cg1.4xlarge", "cr1.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "d3.xlarge", "d3.2xlarge", "d3.4xlarge", "d3.8xlarge", "d3en.xlarge", "d3en.2xlarge", "d3en.4xlarge", "d3en.6xlarge", "d3en.8xlarge", "d3en.12xlarge", "dl1.24xlarge", "f1.2xlarge", "f1.4xlarge", "f1.16xlarge", "g2.2xlarge", "g2.8xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge", "g3s.xlarge", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", "g4dn.16xlarge", "g4dn.metal", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.12xlarge", "g5.16xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "hi1.4xlarge", "hpc6a.48xlarge", "hs1.8xlarge", "h1.2xlarge", "h1.4xlarge", "h1.8xlarge", "h1.16xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "i3.large", "i3.xlarge", "i3.2xlarge", "i3.4xlarge", "i3.8xlarge", "i3.16xlarge", "i3.metal", "i3en.large", "i3en.xlarge", "i3en.2xlarge", "i3en.3xlarge", "i3en.6xlarge", "i3en.12xlarge", "i3en.24xlarge", "i3en.metal", "im4gn.large", "im4gn.xlarge", "im4gn.2xlarge", "im4gn.4xlarge", "im4gn.8xlarge", "im4gn.16xlarge", "inf1.xlarge", "inf1.2xlarge", "inf1.6xlarge", "inf1.24xlarge", "is4gen.medium", "is4gen.large", "is4gen.xlarge", "is4gen.2xlarge", "is4gen.4xlarge", "is4gen.8xlarge", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "m4.16xlarge", "m5.large", "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "m5.12xlarge", "m5.16xlarge", "m5.24xlarge", "m5.metal", "m5a.large", "m5a.xlarge", "m5a.2xlarge", "m5a.4xlarge", "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", "m5a.24xlarge", "m5ad.large", "m5ad.xlarge", "m5ad.2xlarge", "m5ad.4xlarge", "m5ad.8xlarge", "m5ad.12xlarge", "m5ad.16xlarge", "m5ad.24xlarge", "m5d.large", "m5d.xlarge", "m5d.2xlarge", "m5d.4xlarge", "m5d.8xlarge", "m5d.12xlarge", "m5d.16xlarge", "m5d.24xlarge", "m5d.metal", "m5dn.large", "m5dn.xlarge", "m5dn.2xlarge", "m5dn.4xlarge", "m5dn.8xlarge", "m5dn.12xlarge", "m5dn.16xlarge", "m5dn.24xlarge", "m5dn.metal", "m5n.large", "m5n.xlarge", "m5n.2xlarge", "m5n.4xlarge", "m5n.8xlarge", "m5n.12xlarge", "m5n.16xlarge", "m5n.24xlarge", "m5n.metal", "m5zn.large", "m5zn.xlarge", "m5zn.2xlarge", "m5zn.3xlarge", "m5zn.6xlarge", "m5zn.12xlarge", "m5zn.metal", "m6a.large", "m6a.xlarge", "m6a.2xlarge", "m6a.4xlarge", "m6a.8xlarge", "m6a.12xlarge", "m6a.16xlarge", "m6a.24xlarge", "m6a.32xlarge", "m6a.48xlarge", "m6g.metal", "m6g.medium", "m6g.large", "m6g.xlarge", "m6g.2xlarge", "m6g.4xlarge", "m6g.8xlarge", "m6g.12xlarge", "m6g.16xlarge", "m6gd.metal", "m6gd.medium", "m6gd.large", "m6gd.xlarge", "m6gd.2xlarge", "m6gd.4xlarge", "m6gd.8xlarge", "m6gd.12xlarge", "m6gd.16xlarge", "m6i.large", "m6i.xlarge", "m6i.2xlarge", "m6i.4xlarge", "m6i.8xlarge", "m6i.12xlarge", "m6i.16xlarge", "m6i.24xlarge", "m6i.32xlarge", "m6i.metal", "mac1.metal", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p4d.24xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.8xlarge", "r4.16xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "r5.12xlarge", "r5.16xlarge", "r5.24xlarge", "r5.metal", "r5a.large", "r5a.xlarge", "r5a.2xlarge", "r5a.4xlarge", "r5a.8xlarge", "r5a.12xlarge", "r5a.16xlarge", "r5a.24xlarge", "r5ad.large", "r5ad.xlarge", "r5ad.2xlarge", "r5ad.4xlarge", "r5ad.8xlarge", "r5ad.12xlarge", "r5ad.16xlarge", "r5ad.24xlarge", "r5b.large", "r5b.xlarge", "r5b.2xlarge", "r5b.4xlarge", "r5b.8xlarge", "r5b.12xlarge", "r5b.16xlarge", "r5b.24xlarge", "r5b.metal", "r5d.large", "r5d.xlarge", "r5d.2xlarge", "r5d.4xlarge", "r5d.8xlarge", "r5d.12xlarge", "r5d.16xlarge", "r5d.24xlarge", "r5d.metal", "r5dn.large", "r5dn.xlarge", "r5dn.2xlarge", "r5dn.4xlarge", "r5dn.8xlarge", "r5dn.12xlarge", "r5dn.16xlarge", "r5dn.24xlarge", "r5dn.metal", "r5n.large", "r5n.xlarge", "r5n.2xlarge", "r5n.4xlarge", "r5n.8xlarge", "r5n.12xlarge", "r5n.16xlarge", "r5n.24xlarge", "r5n.metal", "r6g.medium", "r6g.large", "r6g.xlarge", "r6g.2xlarge", "r6g.4xlarge", "r6g.8xlarge", "r6g.12xlarge", "r6g.16xlarge", "r6g.metal", "r6gd.medium", "r6gd.large", "r6gd.xlarge", "r6gd.2xlarge", "r6gd.4xlarge", "r6gd.8xlarge", "r6gd.12xlarge", "r6gd.16xlarge", "r6gd.metal", "r6i.large", "r6i.xlarge", "r6i.2xlarge", "r6i.4xlarge", "r6i.8xlarge", "r6i.12xlarge", "r6i.16xlarge", "r6i.24xlarge", "r6i.32xlarge", "r6i.metal", "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge", "t3.nano", "t3.micro", "t3.small", "t3.medium", "t3.large", "t3.xlarge", "t3.2xlarge", "t3a.nano", "t3a.micro", "t3a.small", "t3a.medium", "t3a.large", "t3a.xlarge", "t3a.2xlarge", "t4g.nano", "t4g.micro", "t4g.small", "t4g.medium", "t4g.large", "t4g.xlarge", "t4g.2xlarge", "u-6tb1.56xlarge", "u-6tb1.112xlarge", "u-9tb1.112xlarge", "u-12tb1.112xlarge", "u-6tb1.metal", "u-9tb1.metal", "u-12tb1.metal", "u-18tb1.metal", "u-24tb1.metal", "vt1.3xlarge", "vt1.6xlarge", "vt1.24xlarge", "x1.16xlarge", "x1.32xlarge", "x1e.xlarge", "x1e.2xlarge", "x1e.4xlarge", "x1e.8xlarge", "x1e.16xlarge", "x1e.32xlarge", "x2iezn.2xlarge", "x2iezn.4xlarge", "x2iezn.6xlarge", "x2iezn.8xlarge", "x2iezn.12xlarge", "x2iezn.metal", "x2gd.medium", "x2gd.large", "x2gd.xlarge", "x2gd.2xlarge", "x2gd.4xlarge", "x2gd.8xlarge", "x2gd.12xlarge", "x2gd.16xlarge", "x2gd.metal", "z1d.large", "z1d.xlarge", "z1d.2xlarge", "z1d.3xlarge", "z1d.6xlarge", "z1d.12xlarge", "z1d.metal", "x2idn.16xlarge", "x2idn.24xlarge", "x2idn.32xlarge", "x2iedn.xlarge", "x2iedn.2xlarge", "x2iedn.4xlarge", "x2iedn.8xlarge", "x2iedn.16xlarge", "x2iedn.24xlarge", "x2iedn.32xlarge", "c6a.large", "c6a.xlarge", "c6a.2xlarge", "c6a.4xlarge", "c6a.8xlarge", "c6a.12xlarge", "c6a.16xlarge", "c6a.24xlarge", "c6a.32xlarge", "c6a.48xlarge", "c6a.metal", "m6a.metal", "i4i.large", "i4i.xlarge", "i4i.2xlarge", "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", "i4i.32xlarge", "i4i.metal", "x2idn.metal", "x2iedn.metal", "c7g.medium", "c7g.large", "c7g.xlarge", "c7g.2xlarge", "c7g.4xlarge", "c7g.8xlarge", "c7g.12xlarge", "c7g.16xlarge", "mac2.metal", "c6id.large", "c6id.xlarge", "c6id.2xlarge", "c6id.4xlarge", "c6id.8xlarge", "c6id.12xlarge", "c6id.16xlarge", "c6id.24xlarge", "c6id.32xlarge", "c6id.metal", "m6id.large", "m6id.xlarge", "m6id.2xlarge", "m6id.4xlarge", "m6id.8xlarge", "m6id.12xlarge", "m6id.16xlarge", "m6id.24xlarge", "m6id.32xlarge", "m6id.metal", "r6id.large", "r6id.xlarge", "r6id.2xlarge", "r6id.4xlarge", "r6id.8xlarge", "r6id.12xlarge", "r6id.16xlarge", "r6id.24xlarge", "r6id.32xlarge", "r6id.metal", "r6a.large", "r6a.xlarge", "r6a.2xlarge", "r6a.4xlarge", "r6a.8xlarge", "r6a.12xlarge", "r6a.16xlarge", "r6a.24xlarge", "r6a.32xlarge", "r6a.48xlarge", "r6a.metal", "p4de.24xlarge", "u-3tb1.56xlarge", "u-18tb1.112xlarge", "u-24tb1.112xlarge", "trn1.2xlarge", "trn1.32xlarge", "hpc6id.32xlarge", "c6in.large", "c6in.xlarge", "c6in.2xlarge", "c6in.4xlarge", "c6in.8xlarge", "c6in.12xlarge", "c6in.16xlarge", "c6in.24xlarge", "c6in.32xlarge", "m6in.large", "m6in.xlarge", "m6in.2xlarge", "m6in.4xlarge", "m6in.8xlarge", "m6in.12xlarge", "m6in.16xlarge", "m6in.24xlarge", "m6in.32xlarge", "m6idn.large", "m6idn.xlarge", "m6idn.2xlarge", "m6idn.4xlarge", "m6idn.8xlarge", "m6idn.12xlarge", "m6idn.16xlarge", "m6idn.24xlarge", "m6idn.32xlarge", "r6in.large", "r6in.xlarge", "r6in.2xlarge", "r6in.4xlarge", "r6in.8xlarge", "r6in.12xlarge", "r6in.16xlarge", "r6in.24xlarge", "r6in.32xlarge", "r6idn.large", "r6idn.xlarge", "r6idn.2xlarge", "r6idn.4xlarge", "r6idn.8xlarge", "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", "r6idn.32xlarge", "c7g.metal", "m7g.medium", "m7g.large", "m7g.xlarge", "m7g.2xlarge", "m7g.4xlarge", "m7g.8xlarge", "m7g.12xlarge", "m7g.16xlarge", "m7g.metal", "r7g.medium", "r7g.large", "r7g.xlarge", "r7g.2xlarge", "r7g.4xlarge", "r7g.8xlarge", "r7g.12xlarge", "r7g.16xlarge", "r7g.metal", "c6in.metal", "m6in.metal", "m6idn.metal", "r6in.metal", "r6idn.metal", "inf2.xlarge", "inf2.8xlarge", "inf2.24xlarge", "inf2.48xlarge", "trn1n.32xlarge", "i4g.large", "i4g.xlarge", "i4g.2xlarge", "i4g.4xlarge", "i4g.8xlarge", "i4g.16xlarge", "hpc7g.4xlarge", "hpc7g.8xlarge", "hpc7g.16xlarge", "c7gn.medium", "c7gn.large", "c7gn.xlarge", "c7gn.2xlarge", "c7gn.4xlarge", "c7gn.8xlarge", "c7gn.12xlarge", "c7gn.16xlarge", "p5.48xlarge", "m7i.large", "m7i.xlarge", "m7i.2xlarge", "m7i.4xlarge", "m7i.8xlarge", "m7i.12xlarge", "m7i.16xlarge", "m7i.24xlarge", "m7i.48xlarge", "m7i-flex.large", "m7i-flex.xlarge", "m7i-flex.2xlarge", "m7i-flex.4xlarge", "m7i-flex.8xlarge", "m7a.medium", "m7a.large", "m7a.xlarge", "m7a.2xlarge", "m7a.4xlarge", "m7a.8xlarge", "m7a.12xlarge", "m7a.16xlarge", "m7a.24xlarge", "m7a.32xlarge", "m7a.48xlarge", "m7a.metal-48xl", "hpc7a.12xlarge", "hpc7a.24xlarge", "hpc7a.48xlarge", "hpc7a.96xlarge", "c7gd.medium", "c7gd.large", "c7gd.xlarge", "c7gd.2xlarge", "c7gd.4xlarge", "c7gd.8xlarge", "c7gd.12xlarge", "c7gd.16xlarge", "m7gd.medium", "m7gd.large", "m7gd.xlarge", "m7gd.2xlarge", "m7gd.4xlarge", "m7gd.8xlarge", "m7gd.12xlarge", "m7gd.16xlarge", "r7gd.medium", "r7gd.large", "r7gd.xlarge", "r7gd.2xlarge", "r7gd.4xlarge", "r7gd.8xlarge", "r7gd.12xlarge", "r7gd.16xlarge", "r7a.medium", "r7a.large", "r7a.xlarge", "r7a.2xlarge", "r7a.4xlarge", "r7a.8xlarge", "r7a.12xlarge", "r7a.16xlarge", "r7a.24xlarge", "r7a.32xlarge", "r7a.48xlarge", "c7i.large", "c7i.xlarge", "c7i.2xlarge", "c7i.4xlarge", "c7i.8xlarge", "c7i.12xlarge", "c7i.16xlarge", "c7i.24xlarge", "c7i.48xlarge", "mac2-m2pro.metal", "r7iz.large", "r7iz.xlarge", "r7iz.2xlarge", "r7iz.4xlarge", "r7iz.8xlarge", "r7iz.12xlarge", "r7iz.16xlarge", "r7iz.32xlarge", "c7a.medium", "c7a.large", "c7a.xlarge", "c7a.2xlarge", "c7a.4xlarge", "c7a.8xlarge", "c7a.12xlarge", "c7a.16xlarge", "c7a.24xlarge", "c7a.32xlarge", "c7a.48xlarge", "c7a.metal-48xl", "r7a.metal-48xl", "r7i.large", "r7i.xlarge", "r7i.2xlarge", "r7i.4xlarge", "r7i.8xlarge", "r7i.12xlarge", "r7i.16xlarge", "r7i.24xlarge", "r7i.48xlarge", "dl2q.24xlarge", "mac2-m2.metal", "i4i.12xlarge", "i4i.24xlarge", "c7i.metal-24xl", "c7i.metal-48xl", "m7i.metal-24xl", "m7i.metal-48xl", "r7i.metal-24xl", "r7i.metal-48xl", "r7iz.metal-16xl", "r7iz.metal-32xl", "c7gd.metal", "m7gd.metal", "r7gd.metal", "g6.xlarge", "g6.2xlarge", "g6.4xlarge", "g6.8xlarge", "g6.12xlarge", "g6.16xlarge", "g6.24xlarge", "g6.48xlarge", "gr6.4xlarge", "gr6.8xlarge" ]
enum_MarketType := [ "spot", "capacity-block" ]
enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]
enum_ShutdownBehavior := [ "stop", "terminate" ]
enum_SpotInstanceType := [ "one-time", "persistent" ]
enum_Tenancy := [ "default", "dedicated", "host" ]
enum_VolumeType := [ "standard", "io1", "io2", "gp2", "sc1", "st1", "gp3" ]

valid {
    input.Body.BlockDeviceMapping[_].deviceName == STRING
    input.Body.BlockDeviceMapping[_].virtualName == STRING
    input.Body.BlockDeviceMapping[_].ebs.deleteOnTermination == BOOLEAN
    input.Body.BlockDeviceMapping[_].ebs.iops == INTEGER
    input.Body.BlockDeviceMapping[_].ebs.snapshotId == STRING
    input.Body.BlockDeviceMapping[_].ebs.volumeSize == INTEGER
    input.Body.BlockDeviceMapping[_].ebs.volumeType == enum_VolumeType[_]
    input.Body.BlockDeviceMapping[_].ebs.kmsKeyId == STRING
    input.Body.BlockDeviceMapping[_].ebs.throughput == INTEGER
    input.Body.BlockDeviceMapping[_].ebs.outpostArn == STRING
    input.Body.BlockDeviceMapping[_].ebs.encrypted == BOOLEAN
    input.Body.BlockDeviceMapping[_].noDevice == STRING
    input.Body.ImageId == STRING
    input.Body.InstanceType == enum_InstanceType[_]
    input.Body.Ipv6AddressCount == INTEGER
    input.Body.Ipv6Address[_].ipv6Address == STRING
    input.Body.Ipv6Address[_].isPrimaryIpv6 == BOOLEAN
    input.Body.KernelId == STRING
    input.Body.KeyName == STRING
    input.Body.MaxCount == INTEGER
    input.Body.MinCount == INTEGER
    input.Body.Monitoring.enabled == BOOLEAN
    input.Body.Placement.availabilityZone == STRING
    input.Body.Placement.affinity == STRING
    input.Body.Placement.groupName == STRING
    input.Body.Placement.partitionNumber == INTEGER
    input.Body.Placement.hostId == STRING
    input.Body.Placement.tenancy == enum_Tenancy[_]
    input.Body.Placement.spreadDomain == STRING
    input.Body.Placement.hostResourceGroupArn == STRING
    input.Body.Placement.groupId == STRING
    input.Body.RamdiskId == STRING
    input.Body.SecurityGroupId[_] == STRING
    input.Body.SecurityGroup[_] == STRING
    input.Body.SubnetId == STRING
    input.Body.UserData == STRING
    input.Body.additionalInfo == STRING
    input.Body.clientToken == STRING
    input.Body.disableApiTermination == BOOLEAN
    input.Body.dryRun == BOOLEAN
    input.Body.ebsOptimized == BOOLEAN
    input.Body.iamInstanceProfile.arn == STRING
    input.Body.iamInstanceProfile.name == STRING
    input.Body.instanceInitiatedShutdownBehavior == enum_ShutdownBehavior[_]
    input.Body.networkInterface[_].associatePublicIpAddress == BOOLEAN
    input.Body.networkInterface[_].deleteOnTermination == BOOLEAN
    input.Body.networkInterface[_].description == STRING
    input.Body.networkInterface[_].deviceIndex == INTEGER
    input.Body.networkInterface[_].SecurityGroupId[_] == STRING
    input.Body.networkInterface[_].ipv6AddressCount == INTEGER
    input.Body.networkInterface[_].ipv6AddressesSet[_].ipv6Address == STRING
    input.Body.networkInterface[_].ipv6AddressesSet[_].isPrimaryIpv6 == BOOLEAN
    input.Body.networkInterface[_].networkInterfaceId == STRING
    input.Body.networkInterface[_].privateIpAddress == STRING
    input.Body.networkInterface[_].privateIpAddressesSet[_].primary == BOOLEAN
    input.Body.networkInterface[_].privateIpAddressesSet[_].privateIpAddress == STRING
    input.Body.networkInterface[_].secondaryPrivateIpAddressCount == INTEGER
    input.Body.networkInterface[_].subnetId == STRING
    input.Body.networkInterface[_].AssociateCarrierIpAddress == BOOLEAN
    input.Body.networkInterface[_].InterfaceType == STRING
    input.Body.networkInterface[_].NetworkCardIndex == INTEGER
    input.Body.networkInterface[_].Ipv4Prefix[_].Ipv4Prefix == STRING
    input.Body.networkInterface[_].Ipv4PrefixCount == INTEGER
    input.Body.networkInterface[_].Ipv6Prefix[_].Ipv6Prefix == STRING
    input.Body.networkInterface[_].Ipv6PrefixCount == INTEGER
    input.Body.networkInterface[_].PrimaryIpv6 == BOOLEAN
    input.Body.networkInterface[_].EnaSrdSpecification.EnaSrdEnabled == BOOLEAN
    input.Body.networkInterface[_].EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled == BOOLEAN
    input.Body.networkInterface[_].ConnectionTrackingSpecification.TcpEstablishedTimeout == INTEGER
    input.Body.networkInterface[_].ConnectionTrackingSpecification.UdpStreamTimeout == INTEGER
    input.Body.networkInterface[_].ConnectionTrackingSpecification.UdpTimeout == INTEGER
    input.Body.privateIpAddress == STRING
    input.Body.ElasticGpuSpecification[_].Type == STRING
    input.Body.ElasticInferenceAccelerator[_].Type == STRING
    input.Body.ElasticInferenceAccelerator[_].Count == INTEGER
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.LaunchTemplate.LaunchTemplateId == STRING
    input.Body.LaunchTemplate.LaunchTemplateName == STRING
    input.Body.LaunchTemplate.Version == STRING
    input.Body.InstanceMarketOptions.MarketType == enum_MarketType[_]
    input.Body.InstanceMarketOptions.SpotOptions.MaxPrice == STRING
    input.Body.InstanceMarketOptions.SpotOptions.SpotInstanceType == enum_SpotInstanceType[_]
    input.Body.InstanceMarketOptions.SpotOptions.BlockDurationMinutes == INTEGER
    input.Body.InstanceMarketOptions.SpotOptions.ValidUntil == TIMESTAMP
    input.Body.InstanceMarketOptions.SpotOptions.InstanceInterruptionBehavior == enum_InstanceInterruptionBehavior[_]
    input.Body.CreditSpecification.CpuCredits == STRING
    input.Body.CpuOptions.CoreCount == INTEGER
    input.Body.CpuOptions.ThreadsPerCore == INTEGER
    input.Body.CpuOptions.AmdSevSnp == enum_AmdSevSnpSpecification[_]
    input.Body.CapacityReservationSpecification.CapacityReservationPreference == enum_CapacityReservationPreference[_]
    input.Body.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationId == STRING
    input.Body.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn == STRING
    input.Body.HibernationOptions.Configured == BOOLEAN
    input.Body.LicenseSpecification[_].LicenseConfigurationArn == STRING
    input.Body.MetadataOptions.HttpTokens == enum_HttpTokensState[_]
    input.Body.MetadataOptions.HttpPutResponseHopLimit == INTEGER
    input.Body.MetadataOptions.HttpEndpoint == enum_InstanceMetadataEndpointState[_]
    input.Body.MetadataOptions.HttpProtocolIpv6 == enum_InstanceMetadataProtocolState[_]
    input.Body.MetadataOptions.InstanceMetadataTags == enum_InstanceMetadataTagsState[_]
    input.Body.EnclaveOptions.Enabled == BOOLEAN
    input.Body.PrivateDnsNameOptions.HostnameType == enum_HostnameType[_]
    input.Body.PrivateDnsNameOptions.EnableResourceNameDnsARecord == BOOLEAN
    input.Body.PrivateDnsNameOptions.EnableResourceNameDnsAAAARecord == BOOLEAN
    input.Body.MaintenanceOptions.AutoRecovery == enum_InstanceAutoRecoveryState[_]
    input.Body.DisableApiStop == BOOLEAN
    input.Body.EnablePrimaryIpv6 == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RunScheduledInstances

valid {
    input.Body.ClientToken == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.InstanceCount == INTEGER
    input.Body.LaunchSpecification.BlockDeviceMapping[_].DeviceName == STRING
    input.Body.LaunchSpecification.BlockDeviceMapping[_].Ebs.DeleteOnTermination == BOOLEAN
    input.Body.LaunchSpecification.BlockDeviceMapping[_].Ebs.Encrypted == BOOLEAN
    input.Body.LaunchSpecification.BlockDeviceMapping[_].Ebs.Iops == INTEGER
    input.Body.LaunchSpecification.BlockDeviceMapping[_].Ebs.SnapshotId == STRING
    input.Body.LaunchSpecification.BlockDeviceMapping[_].Ebs.VolumeSize == INTEGER
    input.Body.LaunchSpecification.BlockDeviceMapping[_].Ebs.VolumeType == STRING
    input.Body.LaunchSpecification.BlockDeviceMapping[_].NoDevice == STRING
    input.Body.LaunchSpecification.BlockDeviceMapping[_].VirtualName == STRING
    input.Body.LaunchSpecification.EbsOptimized == BOOLEAN
    input.Body.LaunchSpecification.IamInstanceProfile.Arn == STRING
    input.Body.LaunchSpecification.IamInstanceProfile.Name == STRING
    input.Body.LaunchSpecification.ImageId == STRING
    input.Body.LaunchSpecification.InstanceType == STRING
    input.Body.LaunchSpecification.KernelId == STRING
    input.Body.LaunchSpecification.KeyName == STRING
    input.Body.LaunchSpecification.Monitoring.Enabled == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].AssociatePublicIpAddress == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].DeleteOnTermination == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].Description == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].DeviceIndex == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].Group[_] == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].Ipv6AddressCount == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].Ipv6Address[_].Ipv6Address == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].NetworkInterfaceId == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].PrivateIpAddress == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].PrivateIpAddressConfig[_].Primary == BOOLEAN
    input.Body.LaunchSpecification.NetworkInterface[_].PrivateIpAddressConfig[_].PrivateIpAddress == STRING
    input.Body.LaunchSpecification.NetworkInterface[_].SecondaryPrivateIpAddressCount == INTEGER
    input.Body.LaunchSpecification.NetworkInterface[_].SubnetId == STRING
    input.Body.LaunchSpecification.Placement.AvailabilityZone == STRING
    input.Body.LaunchSpecification.Placement.GroupName == STRING
    input.Body.LaunchSpecification.RamdiskId == STRING
    input.Body.LaunchSpecification.SecurityGroupId[_] == STRING
    input.Body.LaunchSpecification.SubnetId == STRING
    input.Body.LaunchSpecification.UserData == STRING
    input.Body.ScheduledInstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchLocalGatewayRoutes

valid {
    input.Body.LocalGatewayRouteTableId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchTransitGatewayMulticastGroups

valid {
    input.Body.TransitGatewayMulticastDomainId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchTransitGatewayRoutes

valid {
    input.Body.TransitGatewayRouteTableId == STRING
    input.Body.Filter[_].Name == STRING
    input.Body.Filter[_].Value[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendDiagnosticInterrupt

valid {
    input.Body.InstanceId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartInstances

valid {
    input.Body.InstanceId[_] == STRING
    input.Body.additionalInfo == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartNetworkInsightsAccessScopeAnalysis

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.NetworkInsightsAccessScopeId == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartNetworkInsightsAnalysis

enum_ResourceType := [ "capacity-reservation", "client-vpn-endpoint", "customer-gateway", "carrier-gateway", "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", "elastic-ip", "elastic-gpu", "export-image-task", "export-instance-task", "fleet", "fpga-image", "host-reservation", "image", "import-image-task", "import-snapshot-task", "instance", "instance-event-window", "internet-gateway", "ipam", "ipam-pool", "ipam-scope", "ipv4pool-ec2", "ipv6pool-ec2", "key-pair", "launch-template", "local-gateway", "local-gateway-route-table", "local-gateway-virtual-interface", "local-gateway-virtual-interface-group", "local-gateway-route-table-vpc-association", "local-gateway-route-table-virtual-interface-group-association", "natgateway", "network-acl", "network-interface", "network-insights-analysis", "network-insights-path", "network-insights-access-scope", "network-insights-access-scope-analysis", "placement-group", "prefix-list", "replace-root-volume-task", "reserved-instances", "route-table", "security-group", "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", "subnet", "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", "transit-gateway", "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", "transit-gateway-policy-table", "transit-gateway-route-table", "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", "vpc-endpoint-connection", "vpc-endpoint-service", "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", "vpc-flow-log", "capacity-reservation-fleet", "traffic-mirror-filter-rule", "vpc-endpoint-connection-device-type", "verified-access-instance", "verified-access-group", "verified-access-endpoint", "verified-access-policy", "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint" ]

valid {
    input.Body.NetworkInsightsPathId == STRING
    input.Body.AdditionalAccount[_] == STRING
    input.Body.FilterInArn[_] == STRING
    input.Body.DryRun == BOOLEAN
    input.Body.TagSpecification[_].resourceType == enum_ResourceType[_]
    input.Body.TagSpecification[_].Tag[_].key == STRING
    input.Body.TagSpecification[_].Tag[_].value == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartVpcEndpointServicePrivateDnsVerification

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.ServiceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopInstances

valid {
    input.Body.InstanceId[_] == STRING
    input.Body.Hibernate == BOOLEAN
    input.Body.dryRun == BOOLEAN
    input.Body.force == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TerminateClientVpnConnections

valid {
    input.Body.ClientVpnEndpointId == STRING
    input.Body.ConnectionId == STRING
    input.Body.Username == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TerminateInstances

valid {
    input.Body.InstanceId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UnassignIpv6Addresses

valid {
    input.Body.ipv6Addresses[_] == STRING
    input.Body.Ipv6Prefix[_] == STRING
    input.Body.networkInterfaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UnassignPrivateIpAddresses

valid {
    input.Body.networkInterfaceId == STRING
    input.Body.privateIpAddress[_] == STRING
    input.Body.Ipv4Prefix[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UnassignPrivateNatGatewayAddress

valid {
    input.Body.NatGatewayId == STRING
    input.Body.PrivateIpAddress[_] == STRING
    input.Body.MaxDrainDurationSeconds == INTEGER
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UnlockSnapshot

valid {
    input.Body.SnapshotId == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UnmonitorInstances

valid {
    input.Body.InstanceId[_] == STRING
    input.Body.dryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSecurityGroupRuleDescriptionsEgress

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.GroupId == STRING
    input.Body.GroupName == STRING
    input.Body.IpPermissions[_].fromPort == INTEGER
    input.Body.IpPermissions[_].ipProtocol == STRING
    input.Body.IpPermissions[_].ipRanges[_].cidrIp == STRING
    input.Body.IpPermissions[_].ipRanges[_].description == STRING
    input.Body.IpPermissions[_].ipv6Ranges[_].cidrIpv6 == STRING
    input.Body.IpPermissions[_].ipv6Ranges[_].description == STRING
    input.Body.IpPermissions[_].prefixListIds[_].description == STRING
    input.Body.IpPermissions[_].prefixListIds[_].prefixListId == STRING
    input.Body.IpPermissions[_].toPort == INTEGER
    input.Body.IpPermissions[_].groups[_].description == STRING
    input.Body.IpPermissions[_].groups[_].groupId == STRING
    input.Body.IpPermissions[_].groups[_].groupName == STRING
    input.Body.IpPermissions[_].groups[_].peeringStatus == STRING
    input.Body.IpPermissions[_].groups[_].userId == STRING
    input.Body.IpPermissions[_].groups[_].vpcId == STRING
    input.Body.IpPermissions[_].groups[_].vpcPeeringConnectionId == STRING
    input.Body.SecurityGroupRuleDescription[_].SecurityGroupRuleId == STRING
    input.Body.SecurityGroupRuleDescription[_].Description == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSecurityGroupRuleDescriptionsIngress

valid {
    input.Body.DryRun == BOOLEAN
    input.Body.GroupId == STRING
    input.Body.GroupName == STRING
    input.Body.IpPermissions[_].fromPort == INTEGER
    input.Body.IpPermissions[_].ipProtocol == STRING
    input.Body.IpPermissions[_].ipRanges[_].cidrIp == STRING
    input.Body.IpPermissions[_].ipRanges[_].description == STRING
    input.Body.IpPermissions[_].ipv6Ranges[_].cidrIpv6 == STRING
    input.Body.IpPermissions[_].ipv6Ranges[_].description == STRING
    input.Body.IpPermissions[_].prefixListIds[_].description == STRING
    input.Body.IpPermissions[_].prefixListIds[_].prefixListId == STRING
    input.Body.IpPermissions[_].toPort == INTEGER
    input.Body.IpPermissions[_].groups[_].description == STRING
    input.Body.IpPermissions[_].groups[_].groupId == STRING
    input.Body.IpPermissions[_].groups[_].groupName == STRING
    input.Body.IpPermissions[_].groups[_].peeringStatus == STRING
    input.Body.IpPermissions[_].groups[_].userId == STRING
    input.Body.IpPermissions[_].groups[_].vpcId == STRING
    input.Body.IpPermissions[_].groups[_].vpcPeeringConnectionId == STRING
    input.Body.SecurityGroupRuleDescription[_].SecurityGroupRuleId == STRING
    input.Body.SecurityGroupRuleDescription[_].Description == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

WithdrawByoipCidr

valid {
    input.Body.Cidr == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}