ECR-PUBLIC

BatchCheckLayerAvailability

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.layerDigests[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchDeleteImage

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.imageIds[_].imageDigest == STRING
    input.Body.imageIds[_].imageTag == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CompleteLayerUpload

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.uploadId == STRING
    input.Body.layerDigests[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRepository

valid {
    input.Body.repositoryName == STRING
    input.Body.catalogData.description == STRING
    input.Body.catalogData.architectures[_] == STRING
    input.Body.catalogData.operatingSystems[_] == STRING
    input.Body.catalogData.logoImageBlob == BLOB
    input.Body.catalogData.aboutText == STRING
    input.Body.catalogData.usageText == STRING
    input.Body.tags[_].Key == STRING
    input.Body.tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRepository

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.force == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRepositoryPolicy

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

DescribeImageTags

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeImages

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.imageIds[_].imageDigest == STRING
    input.Body.imageIds[_].imageTag == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRegistries

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

DescribeRepositories

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

GetAuthorizationToken

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

GetRegistryCatalogData

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

GetRepositoryCatalogData

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

GetRepositoryPolicy

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

InitiateLayerUpload

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == 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
}

PutImage

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.imageManifest == STRING
    input.Body.imageManifestMediaType == STRING
    input.Body.imageTag == STRING
    input.Body.imageDigest == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutRegistryCatalogData

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

PutRepositoryCatalogData

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.catalogData.description == STRING
    input.Body.catalogData.architectures[_] == STRING
    input.Body.catalogData.operatingSystems[_] == STRING
    input.Body.catalogData.logoImageBlob == BLOB
    input.Body.catalogData.aboutText == STRING
    input.Body.catalogData.usageText == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetRepositoryPolicy

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.policyText == STRING
    input.Body.force == BOOLEAN
    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
}

UploadLayerPart

valid {
    input.Body.registryId == STRING
    input.Body.repositoryName == STRING
    input.Body.uploadId == STRING
    input.Body.partFirstByte == LONG
    input.Body.partLastByte == LONG
    input.Body.layerPartBlob == BLOB
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}