SYNTHETICS

AssociateResource

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

CreateCanary

enum_EncryptionMode := [ "SSE_S3", "SSE_KMS" ]
enum_ResourceToTag := [ "lambda-function" ]

valid {
    input.Body.Name == STRING
    input.Body.Code.S3Bucket == STRING
    input.Body.Code.S3Key == STRING
    input.Body.Code.S3Version == STRING
    input.Body.Code.ZipFile == BLOB
    input.Body.Code.Handler == STRING
    input.Body.ArtifactS3Location == STRING
    input.Body.ExecutionRoleArn == STRING
    input.Body.Schedule.Expression == STRING
    input.Body.Schedule.DurationInSeconds == LONG
    input.Body.RunConfig.TimeoutInSeconds == INTEGER
    input.Body.RunConfig.MemoryInMB == INTEGER
    input.Body.RunConfig.ActiveTracing == BOOLEAN
    input.Body.RunConfig.EnvironmentVariables.STRING == STRING
    input.Body.SuccessRetentionPeriodInDays == INTEGER
    input.Body.FailureRetentionPeriodInDays == INTEGER
    input.Body.RuntimeVersion == STRING
    input.Body.VpcConfig.SubnetIds[_] == STRING
    input.Body.VpcConfig.SecurityGroupIds[_] == STRING
    input.Body.ResourcesToReplicateTags[_] == enum_ResourceToTag[_]
    input.Body.Tags.STRING == STRING
    input.Body.ArtifactConfig.S3Encryption.EncryptionMode == enum_EncryptionMode[_]
    input.Body.ArtifactConfig.S3Encryption.KmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGroup

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

DeleteCanary

valid {
    input.ReqMap.name == STRING
    input.Qs.deleteLambda == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteGroup

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

DescribeCanaries

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

DescribeCanariesLastRun

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

DescribeRuntimeVersions

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

DisassociateResource

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

GetCanary

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

GetCanaryRuns

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

GetGroup

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

ListAssociatedGroups

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

ListGroupResources

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

ListGroups

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

ListTagsForResource

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

StartCanary

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

StopCanary

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

TagResource

valid {
    input.Body.Tags.STRING == STRING
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.resourceArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateCanary

enum_EncryptionMode := [ "SSE_S3", "SSE_KMS" ]

valid {
    input.Body.Code.S3Bucket == STRING
    input.Body.Code.S3Key == STRING
    input.Body.Code.S3Version == STRING
    input.Body.Code.ZipFile == BLOB
    input.Body.Code.Handler == STRING
    input.Body.ExecutionRoleArn == STRING
    input.Body.RuntimeVersion == STRING
    input.Body.Schedule.Expression == STRING
    input.Body.Schedule.DurationInSeconds == LONG
    input.Body.RunConfig.TimeoutInSeconds == INTEGER
    input.Body.RunConfig.MemoryInMB == INTEGER
    input.Body.RunConfig.ActiveTracing == BOOLEAN
    input.Body.RunConfig.EnvironmentVariables.STRING == STRING
    input.Body.SuccessRetentionPeriodInDays == INTEGER
    input.Body.FailureRetentionPeriodInDays == INTEGER
    input.Body.VpcConfig.SubnetIds[_] == STRING
    input.Body.VpcConfig.SecurityGroupIds[_] == STRING
    input.Body.VisualReference.BaseScreenshots[_].ScreenshotName == STRING
    input.Body.VisualReference.BaseScreenshots[_].IgnoreCoordinates[_] == STRING
    input.Body.VisualReference.BaseCanaryRunId == STRING
    input.Body.ArtifactS3Location == STRING
    input.Body.ArtifactConfig.S3Encryption.EncryptionMode == enum_EncryptionMode[_]
    input.Body.ArtifactConfig.S3Encryption.KmsKeyArn == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}