{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-ecr-replicationconfiguration.json",
  "title": "AWSECRReplicationConfigurationProperties",
  "description": "The AWS::ECR::ReplicationConfiguration resource configures the replication destinations for an Amazon Elastic Container Registry (Amazon Private ECR). For more information, see <https://docs.aws.amazon.com/AmazonECR/latest/userguide/replication.html>. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-ecr-replicationconfiguration.json",
    "sourceSha256": "e41812b18185ca4607f348fd38dfc2cf458f5f2305e100c7719ef8b9b08b08a5"
  },
  "type": "object",
  "properties": {
    "ReplicationConfiguration": {
      "$ref": "#/$defs/ReplicationConfiguration"
    }
  },
  "typeName": "AWS::ECR::ReplicationConfiguration",
  "$defs": {
    "ReplicationConfiguration": {
      "type": "object",
      "properties": {
        "Rules": {
          "type": "array",
          "minItems": 0,
          "maxItems": 10,
          "items": {
            "$ref": "#/$defs/ReplicationRule"
          },
          "description": "An array of objects representing the replication rules for a replication configuration. A replication configuration may contain a maximum of 10 rules."
        }
      },
      "description": "An object representing the replication configuration for a registry.",
      "required": [
        "Rules"
      ],
      "title": "AWSECRReplicationConfigurationReplicationConfigurationDefinition",
      "additionalProperties": false
    },
    "ReplicationRule": {
      "type": "object",
      "properties": {
        "RepositoryFilters": {
          "type": "array",
          "minItems": 0,
          "maxItems": 100,
          "items": {
            "$ref": "#/$defs/RepositoryFilter"
          },
          "description": "An array of objects representing the details of a repository filter."
        },
        "Destinations": {
          "type": "array",
          "minItems": 1,
          "maxItems": 25,
          "items": {
            "$ref": "#/$defs/ReplicationDestination"
          },
          "description": "An array of objects representing the details of a replication destination."
        }
      },
      "description": "An array of objects representing the details of a replication destination.",
      "required": [
        "Destinations"
      ],
      "title": "AWSECRReplicationConfigurationReplicationRuleDefinition",
      "additionalProperties": false
    },
    "RepositoryFilter": {
      "type": "object",
      "properties": {
        "Filter": {
          "$ref": "#/$defs/Filter"
        },
        "FilterType": {
          "$ref": "#/$defs/FilterType"
        }
      },
      "description": "An array of objects representing the details of a repository filter.",
      "required": [
        "Filter",
        "FilterType"
      ],
      "title": "AWSECRReplicationConfigurationRepositoryFilterDefinition",
      "additionalProperties": false
    },
    "Filter": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "^(?:[a-z0-9]+(?:[._-][a-z0-9]*)*/)*[a-z0-9]*(?:[._-][a-z0-9]*)*$"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The repository filter to be applied for replication.",
      "title": "AWSECRReplicationConfigurationFilterDefinition"
    },
    "FilterType": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "PREFIX_MATCH"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Type of repository filter",
      "title": "AWSECRReplicationConfigurationFilterTypeDefinition"
    },
    "ReplicationDestination": {
      "type": "object",
      "properties": {
        "Region": {
          "$ref": "#/$defs/Region"
        },
        "RegistryId": {
          "$ref": "#/$defs/RegistryId"
        }
      },
      "description": "An array of objects representing the details of a replication destination.",
      "required": [
        "Region",
        "RegistryId"
      ],
      "title": "AWSECRReplicationConfigurationReplicationDestinationDefinition",
      "additionalProperties": false
    },
    "RegistryId": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "^[0-9]{12}$"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The account ID of the destination registry to replicate to.",
      "title": "AWSECRReplicationConfigurationRegistryIdDefinition"
    },
    "Region": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "[0-9a-z-]{2,25}"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "A Region to replicate to.",
      "title": "AWSECRReplicationConfigurationRegionDefinition"
    }
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git",
  "additionalProperties": false,
  "readOnlyProperties": [
    "/properties/RegistryId"
  ],
  "required": [
    "ReplicationConfiguration"
  ],
  "primaryIdentifier": [
    "/properties/RegistryId"
  ]
}
