Definitions for @turbot/aws-ecr

destinationsItems

{
"type": "object",
"properties": {
"region": {
"type": "string"
},
"registryId": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/destinationsItems",
"modUri": "tmod:@turbot/aws-ecr"
}
}

ecr

{
"allOf": [
{
"$ref": "turbot#/definitions/service"
},
{
"type": "object",
"properties": {
"name": {
"const": "ECR"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/ecrAka"
}
},
"title": {
"const": "ECR"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - all properties",
"input": {
"name": "ECR",
"turbot": {
"akas": [
"arn:aws:ecr:us-east-1:123123123123"
],
"title": "ECR",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-west-2"
}
}
}
}
}
]
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/ecr",
"modUri": "tmod:@turbot/aws-ecr"
}
}

ecrAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ecr:[a-z]{2}(-gov)?-[a-z]+-[0-9]{1}:[0-9]{12}$",
"tests": [
{
"description": "base",
"input": "arn:aws:ecr:us-east-1:123123123123"
},
{
"description": "Invalid - service name not valid",
"input": "arn:aws:ecrs:us-east-1:123123123123",
"expected": false
},
{
"description": "Invalid - account id is not valid",
"input": "arn:aws:ecr:us-east-1:1233123",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/ecrAka",
"modUri": "tmod:@turbot/aws-ecr"
}
}

image

{
"type": "object",
"properties": {
"registryId": {
"$ref": "aws#/definitions/accountId"
},
"repositoryName": {
"$ref": "#/definitions/repositoryName"
},
"imageTagMutability": {
"type": "string"
},
"imageId": {
"type": "object"
},
"imageManifest": {
"type": "string"
},
"imageManifestMediaType": {
"type": "string"
},
"imageDigest": {
"type": "string"
},
"imageTags": {
"type": "array"
},
"imageSizeInBytes": {
"type": "integer"
},
"imagePushedAt": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"imageScanStatus": {
"type": "object"
},
"imageScanFindingsSummary": {
"type": "object"
},
"artifactMediaType": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/imageAka"
}
},
"title": {
"$ref": "#/definitions/imageDigest"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"registryId": "560741234067",
"repositoryName": "image-check",
"imagePushedAt": "2019-11-11T06:34:17.000Z",
"imageTagMutability": "MUTABLE",
"imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json",
"imageDigest": "sha256:8ece96b74f87652876199d83bd107d0435a196133af383ac54cb82b6cc5283ae",
"imageTags": [
"latest"
],
"imageSizeInBytes": 83920101,
"imageScanStatus": {
"status": "COMPLETE,",
"description": "The scan was completed successfully."
},
"imageScanFindingsSummary": {
"imageScanCompletedAt": "2021-04-05T15:12:32+05:30,",
"vulnerabilitySourceUpdatedAt": "2021-04-02T21:12:09+05:30,",
"findingSeverityCounts": {
"MEDIUM": 5,
"INFORMATIONAL": 8,
"LOW": 19
}
},
"artifactMediaType": "application/vnd.docker.container.image.v1+json",
"turbot": {
"akas": [
"arn:aws:ecr:us-east-1:986325076436:repository/image-check/image/sha256:29739bc50d65364d0ecb54ce3eb96d409ded4c1317c8bafdfc099d2501b7edd2"
],
"title": "sha256:29739bc50d65364d0ecb54ce3eb96d409ded4c1317c8bafdfc099d2501b7edd2",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/image",
"modUri": "tmod:@turbot/aws-ecr"
}
}

imageAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ecr:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:repository/(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/image/(.+)$",
"tests": [
{
"description": "valid arn",
"input": "arn:aws:ecr:us-east-1:986325076436:repository/image-check/image/sha256:29739bc50d65364d0ecb54ce3eb96d409ded4c1317c8bafdfc099d2501b7edd2"
},
{
"description": "invalid - missing image",
"input": "arn:aws:ecr:us-west-2:986325076436:repository/name.space/image-new/",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/imageAka",
"modUri": "tmod:@turbot/aws-ecr"
}
}

imageDigest

{
"type": "string",
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/imageDigest",
"modUri": "tmod:@turbot/aws-ecr"
}
}

imageTags

{
"type": "string",
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/imageTags",
"modUri": "tmod:@turbot/aws-ecr"
}
}

privateRegistry

{
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"registryId": {
"$ref": "aws#/definitions/accountId"
},
"RegistryPermissions": {
"type": "object"
},
"replicationConfiguration": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"$ref": "#/definitions/rulesItems"
}
}
}
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/privateRegistryAka"
}
},
"title": {
"type": "string"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
}
}
}
}
}
},
"additionalProperties": true,
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/privateRegistry",
"modUri": "tmod:@turbot/aws-ecr"
}
}

privateRegistryAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ecr:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:privateregistry$",
"tests": [
{
"description": "valid arn",
"input": "arn:aws:ecr:us-east-1:111111111111:privateregistry"
},
{
"description": "invalid - AWS account id is wrong",
"input": "arn:aws:ecr:us-west-2:4925:privateregistry",
"expected": false
},
{
"description": "invalid - arn cannot be empty",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/privateRegistryAka",
"modUri": "tmod:@turbot/aws-ecr"
}
}

publicRepository

{
"type": "object",
"properties": {
"registryId": {
"$ref": "aws#/definitions/accountId"
},
"repositoryName": {
"$ref": "#/definitions/repositoryName"
},
"repositoryArn": {
"$ref": "#/definitions/publicRepositoryAka"
},
"repositoryUri": {
"type": "string"
},
"createdAt": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/publicRepositoryAka"
}
},
"title": {
"$ref": "#/definitions/repositoryName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"repositoryArn": "arn:aws:ecr-public:us-west-2:560741234067:repository/ved-test",
"registryId": "560741234067",
"repositoryName": "ved-test",
"repositoryUri": "560741234067.dkr.ecr.us-west-2.amazonaws.com/ved-test",
"createdAt": "2019-11-11T06:34:17.000Z",
"imageTagMutability": "MUTABLE",
"turbot": {
"akas": [
"arn:aws:ecr-public:us-east-1:111111111111:repository/name.space/ved-test"
],
"title": "name.space/ved-test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/publicRepository",
"modUri": "tmod:@turbot/aws-ecr"
}
}

publicRepositoryAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ecr-public::[0-9]{12}:repository/(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*$",
"tests": [
{
"description": "valid arn",
"input": "arn:aws:ecr-public:us-east-1:111111111111:repository/name.space/ved-test"
},
{
"description": "arn with the different region",
"input": "arn:aws:ecr-public:us-west-2:111111111111:repository/name.space/ved-testame"
},
{
"description": "invalid - should start with arn",
"input": "hi hi",
"expected": false
},
{
"description": "invalid - AWS account id is wrong",
"input": "arn:aws:ecr-public:us-west-2:4925:repository/name.space/ved-test",
"expected": false
},
{
"description": "invalid - arn cannot be empty",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/publicRepositoryAka",
"modUri": "tmod:@turbot/aws-ecr"
}
}

repository

{
"type": "object",
"properties": {
"registryId": {
"$ref": "aws#/definitions/accountId"
},
"repositoryName": {
"$ref": "#/definitions/repositoryName"
},
"repositoryArn": {
"$ref": "#/definitions/repositoryAka"
},
"repositoryUri": {
"type": "string"
},
"createdAt": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"imageTagMutability": {
"type": "string"
},
"policyText": {
"type": "string"
},
"lifecyclePolicyText": {
"type": "string"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/repositoryAka"
}
},
"title": {
"$ref": "#/definitions/repositoryName"
},
"custom": {
"type": "object",
"properties": {
"aws": {
"$ref": "aws#/definitions/awsMetadata"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties",
"input": {
"repositoryArn": "arn:aws:ecr:us-west-2:560741234067:repository/ved-test",
"registryId": "560741234067",
"repositoryName": "ved-test",
"repositoryUri": "560741234067.dkr.ecr.us-west-2.amazonaws.com/ved-test",
"createdAt": "2019-11-11T06:34:17.000Z",
"imageTagMutability": "MUTABLE",
"turbot": {
"akas": [
"arn:aws:ecr:us-east-1:111111111111:repository/name.space/ved-test"
],
"title": "name.space/ved-test",
"custom": {
"aws": {
"accountId": 123456789012,
"regionName": "us-east-1"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/repository",
"modUri": "tmod:@turbot/aws-ecr"
}
}

repositoryAka

{
"type": "string",
"pattern": "^arn:aws(-us-gov|-cn)?:ecr:[a-z]{2}(-gov)?-[a-z]+-[0-9]:[0-9]{12}:repository/(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*$",
"tests": [
{
"description": "valid arn",
"input": "arn:aws:ecr:us-east-1:111111111111:repository/name.space/ved-test"
},
{
"description": "arn with the different region",
"input": "arn:aws:ecr:us-west-2:111111111111:repository/name.space/ved-testame"
},
{
"description": "invalid - should start with arn",
"input": "hi hi",
"expected": false
},
{
"description": "invalid - AWS account id is wrong",
"input": "arn:aws:ecr:us-west-2:4925:repository/name.space/ved-test",
"expected": false
},
{
"description": "invalid - arn cannot be empty",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/repositoryAka",
"modUri": "tmod:@turbot/aws-ecr"
}
}

repositoryFiltersItems

{
"type": "object",
"properties": {
"filter": {
"type": "string"
},
"filterType": {
"type": "string"
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/repositoryFiltersItems",
"modUri": "tmod:@turbot/aws-ecr"
}
}

repositoryName

{
"type": "string",
"minLength": 2,
"maxLength": 256,
"pattern": "^(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*$",
"tests": [
{
"input": "name.space/ved-test"
},
{
"description": "max length",
"input": "a23456789_123456790_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789/123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456"
},
{
"description": "invalid - should start with lowercase only",
"input": "Test0001",
"expected": false
},
{
"description": "invalid - too long",
"input": "a23456789_123456790_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789/123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_1234567",
"expected": false
},
{
"description": "invalid - dollar, at symbol not allowed",
"input": "namespace$parent@repo01-child_01",
"expected": false
},
{
"description": "invalid - empty string",
"input": "",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/repositoryName",
"modUri": "tmod:@turbot/aws-ecr"
}
}

rulesItems

{
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"$ref": "#/definitions/destinationsItems"
}
},
"repositoryFilters": {
"type": "array",
"items": {
"$ref": "#/definitions/repositoryFiltersItems"
}
}
},
".turbot": {
"uri": "tmod:@turbot/aws-ecr#/definitions/rulesItems",
"modUri": "tmod:@turbot/aws-ecr"
}
}