GLOBALACCELERATOR

AddCustomRoutingEndpoints

valid {
    input.Body.EndpointConfigurations[_].EndpointId == STRING
    input.Body.EndpointConfigurations[_].AttachmentArn == STRING
    input.Body.EndpointGroupArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddEndpoints

valid {
    input.Body.EndpointConfigurations[_].EndpointId == STRING
    input.Body.EndpointConfigurations[_].Weight == INTEGER
    input.Body.EndpointConfigurations[_].ClientIPPreservationEnabled == BOOLEAN
    input.Body.EndpointConfigurations[_].AttachmentArn == STRING
    input.Body.EndpointGroupArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AdvertiseByoipCidr

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

AllowCustomRoutingTraffic

valid {
    input.Body.EndpointGroupArn == STRING
    input.Body.EndpointId == STRING
    input.Body.DestinationAddresses[_] == STRING
    input.Body.DestinationPorts[_] == INTEGER
    input.Body.AllowAllTrafficToEndpoint == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAccelerator

enum_IpAddressType := [ "IPV4", "DUAL_STACK" ]

valid {
    input.Body.Name == STRING
    input.Body.IpAddressType == enum_IpAddressType[_]
    input.Body.IpAddresses[_] == STRING
    input.Body.Enabled == BOOLEAN
    input.Body.IdempotencyToken == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCrossAccountAttachment

valid {
    input.Body.Name == STRING
    input.Body.Principals[_] == STRING
    input.Body.Resources[_].EndpointId == STRING
    input.Body.Resources[_].Cidr == STRING
    input.Body.Resources[_].Region == STRING
    input.Body.IdempotencyToken == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCustomRoutingAccelerator

enum_IpAddressType := [ "IPV4", "DUAL_STACK" ]

valid {
    input.Body.Name == STRING
    input.Body.IpAddressType == enum_IpAddressType[_]
    input.Body.IpAddresses[_] == STRING
    input.Body.Enabled == BOOLEAN
    input.Body.IdempotencyToken == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCustomRoutingEndpointGroup

enum_CustomRoutingProtocol := [ "TCP", "UDP" ]

valid {
    input.Body.ListenerArn == STRING
    input.Body.EndpointGroupRegion == STRING
    input.Body.DestinationConfigurations[_].FromPort == INTEGER
    input.Body.DestinationConfigurations[_].ToPort == INTEGER
    input.Body.DestinationConfigurations[_].Protocols[_] == enum_CustomRoutingProtocol[_]
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCustomRoutingListener

valid {
    input.Body.AcceleratorArn == STRING
    input.Body.PortRanges[_].FromPort == INTEGER
    input.Body.PortRanges[_].ToPort == INTEGER
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEndpointGroup

enum_HealthCheckProtocol := [ "TCP", "HTTP", "HTTPS" ]

valid {
    input.Body.ListenerArn == STRING
    input.Body.EndpointGroupRegion == STRING
    input.Body.EndpointConfigurations[_].EndpointId == STRING
    input.Body.EndpointConfigurations[_].Weight == INTEGER
    input.Body.EndpointConfigurations[_].ClientIPPreservationEnabled == BOOLEAN
    input.Body.EndpointConfigurations[_].AttachmentArn == STRING
    input.Body.TrafficDialPercentage == FLOAT
    input.Body.HealthCheckPort == INTEGER
    input.Body.HealthCheckProtocol == enum_HealthCheckProtocol[_]
    input.Body.HealthCheckPath == STRING
    input.Body.HealthCheckIntervalSeconds == INTEGER
    input.Body.ThresholdCount == INTEGER
    input.Body.IdempotencyToken == STRING
    input.Body.PortOverrides[_].ListenerPort == INTEGER
    input.Body.PortOverrides[_].EndpointPort == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateListener

enum_ClientAffinity := [ "NONE", "SOURCE_IP" ]
enum_Protocol := [ "TCP", "UDP" ]

valid {
    input.Body.AcceleratorArn == STRING
    input.Body.PortRanges[_].FromPort == INTEGER
    input.Body.PortRanges[_].ToPort == INTEGER
    input.Body.Protocol == enum_Protocol[_]
    input.Body.ClientAffinity == enum_ClientAffinity[_]
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAccelerator

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

DeleteCrossAccountAttachment

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

DeleteCustomRoutingAccelerator

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

DeleteCustomRoutingEndpointGroup

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

DeleteCustomRoutingListener

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

DeleteEndpointGroup

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

DeleteListener

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

DenyCustomRoutingTraffic

valid {
    input.Body.EndpointGroupArn == STRING
    input.Body.EndpointId == STRING
    input.Body.DestinationAddresses[_] == STRING
    input.Body.DestinationPorts[_] == INTEGER
    input.Body.DenyAllTrafficToEndpoint == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeprovisionByoipCidr

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

DescribeAccelerator

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

DescribeAcceleratorAttributes

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

DescribeCrossAccountAttachment

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

DescribeCustomRoutingAccelerator

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

DescribeCustomRoutingAcceleratorAttributes

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

DescribeCustomRoutingEndpointGroup

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

DescribeCustomRoutingListener

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

DescribeEndpointGroup

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

DescribeListener

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

ListAccelerators

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

ListByoipCidrs

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

ListCrossAccountAttachments

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

ListCrossAccountResourceAccounts

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

ListCrossAccountResources

valid {
    input.Body.AcceleratorArn == STRING
    input.Body.ResourceOwnerAwsAccountId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCustomRoutingAccelerators

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

ListCustomRoutingEndpointGroups

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

ListCustomRoutingListeners

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

ListCustomRoutingPortMappings

valid {
    input.Body.AcceleratorArn == STRING
    input.Body.EndpointGroupArn == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCustomRoutingPortMappingsByDestination

valid {
    input.Body.EndpointId == STRING
    input.Body.DestinationAddress == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEndpointGroups

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

ListListeners

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

ListTagsForResource

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

ProvisionByoipCidr

valid {
    input.Body.Cidr == STRING
    input.Body.CidrAuthorizationContext.Message == STRING
    input.Body.CidrAuthorizationContext.Signature == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveCustomRoutingEndpoints

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

RemoveEndpoints

valid {
    input.Body.EndpointIdentifiers[_].EndpointId == STRING
    input.Body.EndpointIdentifiers[_].ClientIPPreservationEnabled == BOOLEAN
    input.Body.EndpointGroupArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

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

UntagResource

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

UpdateAccelerator

enum_IpAddressType := [ "IPV4", "DUAL_STACK" ]

valid {
    input.Body.AcceleratorArn == STRING
    input.Body.Name == STRING
    input.Body.IpAddressType == enum_IpAddressType[_]
    input.Body.Enabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAcceleratorAttributes

valid {
    input.Body.AcceleratorArn == STRING
    input.Body.FlowLogsEnabled == BOOLEAN
    input.Body.FlowLogsS3Bucket == STRING
    input.Body.FlowLogsS3Prefix == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateCrossAccountAttachment

valid {
    input.Body.AttachmentArn == STRING
    input.Body.Name == STRING
    input.Body.AddPrincipals[_] == STRING
    input.Body.RemovePrincipals[_] == STRING
    input.Body.AddResources[_].EndpointId == STRING
    input.Body.AddResources[_].Cidr == STRING
    input.Body.AddResources[_].Region == STRING
    input.Body.RemoveResources[_].EndpointId == STRING
    input.Body.RemoveResources[_].Cidr == STRING
    input.Body.RemoveResources[_].Region == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateCustomRoutingAccelerator

enum_IpAddressType := [ "IPV4", "DUAL_STACK" ]

valid {
    input.Body.AcceleratorArn == STRING
    input.Body.Name == STRING
    input.Body.IpAddressType == enum_IpAddressType[_]
    input.Body.Enabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateCustomRoutingAcceleratorAttributes

valid {
    input.Body.AcceleratorArn == STRING
    input.Body.FlowLogsEnabled == BOOLEAN
    input.Body.FlowLogsS3Bucket == STRING
    input.Body.FlowLogsS3Prefix == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateCustomRoutingListener

valid {
    input.Body.ListenerArn == STRING
    input.Body.PortRanges[_].FromPort == INTEGER
    input.Body.PortRanges[_].ToPort == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEndpointGroup

enum_HealthCheckProtocol := [ "TCP", "HTTP", "HTTPS" ]

valid {
    input.Body.EndpointGroupArn == STRING
    input.Body.EndpointConfigurations[_].EndpointId == STRING
    input.Body.EndpointConfigurations[_].Weight == INTEGER
    input.Body.EndpointConfigurations[_].ClientIPPreservationEnabled == BOOLEAN
    input.Body.EndpointConfigurations[_].AttachmentArn == STRING
    input.Body.TrafficDialPercentage == FLOAT
    input.Body.HealthCheckPort == INTEGER
    input.Body.HealthCheckProtocol == enum_HealthCheckProtocol[_]
    input.Body.HealthCheckPath == STRING
    input.Body.HealthCheckIntervalSeconds == INTEGER
    input.Body.ThresholdCount == INTEGER
    input.Body.PortOverrides[_].ListenerPort == INTEGER
    input.Body.PortOverrides[_].EndpointPort == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateListener

enum_ClientAffinity := [ "NONE", "SOURCE_IP" ]
enum_Protocol := [ "TCP", "UDP" ]

valid {
    input.Body.ListenerArn == STRING
    input.Body.PortRanges[_].FromPort == INTEGER
    input.Body.PortRanges[_].ToPort == INTEGER
    input.Body.Protocol == enum_Protocol[_]
    input.Body.ClientAffinity == enum_ClientAffinity[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

WithdrawByoipCidr

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