ELASTICLOADBALANCING

AddTags

valid {
    input.Body.LoadBalancerNames[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ApplySecurityGroupsToLoadBalancer

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

AttachLoadBalancerToSubnets

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

ConfigureHealthCheck

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.HealthCheck.Target == STRING
    input.Body.HealthCheck.Interval == INTEGER
    input.Body.HealthCheck.Timeout == INTEGER
    input.Body.HealthCheck.UnhealthyThreshold == INTEGER
    input.Body.HealthCheck.HealthyThreshold == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAppCookieStickinessPolicy

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.PolicyName == STRING
    input.Body.CookieName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLBCookieStickinessPolicy

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.PolicyName == STRING
    input.Body.CookieExpirationPeriod == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLoadBalancer

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.Listeners[_].Protocol == STRING
    input.Body.Listeners[_].LoadBalancerPort == INTEGER
    input.Body.Listeners[_].InstanceProtocol == STRING
    input.Body.Listeners[_].InstancePort == INTEGER
    input.Body.Listeners[_].SSLCertificateId == STRING
    input.Body.AvailabilityZones[_] == STRING
    input.Body.Subnets[_] == STRING
    input.Body.SecurityGroups[_] == STRING
    input.Body.Scheme == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLoadBalancerListeners

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.Listeners[_].Protocol == STRING
    input.Body.Listeners[_].LoadBalancerPort == INTEGER
    input.Body.Listeners[_].InstanceProtocol == STRING
    input.Body.Listeners[_].InstancePort == INTEGER
    input.Body.Listeners[_].SSLCertificateId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLoadBalancerPolicy

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.PolicyName == STRING
    input.Body.PolicyTypeName == STRING
    input.Body.PolicyAttributes[_].AttributeName == STRING
    input.Body.PolicyAttributes[_].AttributeValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLoadBalancer

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

DeleteLoadBalancerListeners

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.LoadBalancerPorts[_] == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteLoadBalancerPolicy

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

DeregisterInstancesFromLoadBalancer

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

DescribeAccountLimits

valid {
    input.Body.Marker == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceHealth

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

DescribeLoadBalancerAttributes

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

DescribeLoadBalancerPolicies

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

DescribeLoadBalancerPolicyTypes

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

DescribeLoadBalancers

valid {
    input.Body.LoadBalancerNames[_] == STRING
    input.Body.Marker == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTags

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

DetachLoadBalancerFromSubnets

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

DisableAvailabilityZonesForLoadBalancer

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

EnableAvailabilityZonesForLoadBalancer

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

ModifyLoadBalancerAttributes

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.LoadBalancerAttributes.CrossZoneLoadBalancing.Enabled == BOOLEAN
    input.Body.LoadBalancerAttributes.AccessLog.Enabled == BOOLEAN
    input.Body.LoadBalancerAttributes.AccessLog.S3BucketName == STRING
    input.Body.LoadBalancerAttributes.AccessLog.EmitInterval == INTEGER
    input.Body.LoadBalancerAttributes.AccessLog.S3BucketPrefix == STRING
    input.Body.LoadBalancerAttributes.ConnectionDraining.Enabled == BOOLEAN
    input.Body.LoadBalancerAttributes.ConnectionDraining.Timeout == INTEGER
    input.Body.LoadBalancerAttributes.ConnectionSettings.IdleTimeout == INTEGER
    input.Body.LoadBalancerAttributes.AdditionalAttributes[_].Key == STRING
    input.Body.LoadBalancerAttributes.AdditionalAttributes[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterInstancesWithLoadBalancer

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

RemoveTags

valid {
    input.Body.LoadBalancerNames[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetLoadBalancerListenerSSLCertificate

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.LoadBalancerPort == INTEGER
    input.Body.SSLCertificateId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetLoadBalancerPoliciesForBackendServer

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.InstancePort == INTEGER
    input.Body.PolicyNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetLoadBalancerPoliciesOfListener

valid {
    input.Body.LoadBalancerName == STRING
    input.Body.LoadBalancerPort == INTEGER
    input.Body.PolicyNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}