{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-imagebuilder-imagepipeline.json",
  "title": "AWSImageBuilderImagePipelineProperties",
  "description": "Resource schema for AWS::ImageBuilder::ImagePipeline. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-imagebuilder-imagepipeline.json",
    "sourceSha256": "8173075475aab4336263a7efe188d7edcf78ce3d7650e6a5fcedbcf93e9f3e55"
  },
  "type": "object",
  "properties": {
    "Name": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The name of the image pipeline."
    },
    "Description": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The description of the image pipeline."
    },
    "ImageTestsConfiguration": {
      "description": "The image tests configuration of the image pipeline.",
      "$ref": "#/$defs/ImageTestsConfiguration"
    },
    "Status": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "DISABLED",
            "ENABLED"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The status of the image pipeline."
    },
    "Schedule": {
      "description": "The schedule of the image pipeline.",
      "$ref": "#/$defs/Schedule"
    },
    "ImageRecipeArn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed."
    },
    "ContainerRecipeArn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested."
    },
    "DistributionConfigurationArn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline."
    },
    "InfrastructureConfigurationArn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline."
    },
    "EnhancedImageMetadataEnabled": {
      "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.",
      "type": "boolean"
    },
    "ImageScanningConfiguration": {
      "description": "Contains settings for vulnerability scans.",
      "$ref": "#/$defs/ImageScanningConfiguration"
    },
    "Tags": {
      "description": "The tags of this image pipeline.",
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        ".{1,}": {
          "type": "string"
        }
      }
    }
  },
  "typeName": "AWS::ImageBuilder::ImagePipeline",
  "tagging": {
    "taggable": false
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git",
  "createOnlyProperties": [
    "/properties/Name"
  ],
  "additionalProperties": false,
  "$defs": {
    "ImageTestsConfiguration": {
      "description": "Image tests configuration.",
      "type": "object",
      "title": "AWSImageBuilderImagePipelineImageTestsConfigurationDefinition",
      "properties": {
        "ImageTestsEnabled": {
          "description": "Defines if tests should be executed when building this image.",
          "type": "boolean"
        },
        "TimeoutMinutes": {
          "description": "The maximum time in minutes that tests are permitted to run.",
          "type": "integer",
          "minimum": 60,
          "maximum": 1440
        }
      },
      "additionalProperties": false
    },
    "ImageScanningConfiguration": {
      "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.",
      "type": "object",
      "title": "AWSImageBuilderImagePipelineImageScanningConfigurationDefinition",
      "properties": {
        "EcrConfiguration": {
          "description": "Contains ECR settings for vulnerability scans.",
          "$ref": "#/$defs/EcrConfiguration"
        },
        "ImageScanningEnabled": {
          "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.",
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "EcrConfiguration": {
      "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.",
      "type": "object",
      "title": "AWSImageBuilderImagePipelineEcrConfigurationDefinition",
      "properties": {
        "ContainerTags": {
          "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.",
          "type": "array",
          "insertionOrder": true,
          "items": {
            "type": "string"
          }
        },
        "RepositoryName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images."
        }
      },
      "additionalProperties": false
    },
    "Schedule": {
      "description": "The schedule of the image pipeline.",
      "type": "object",
      "title": "AWSImageBuilderImagePipelineScheduleDefinition",
      "properties": {
        "ScheduleExpression": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition."
        },
        "PipelineExecutionStartCondition": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "EXPRESSION_MATCH_ONLY",
                "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The condition configures when the pipeline should trigger a new image build."
        }
      },
      "additionalProperties": false
    }
  },
  "oneOf": [
    {
      "required": [
        "Name",
        "ContainerRecipeArn",
        "InfrastructureConfigurationArn"
      ]
    },
    {
      "required": [
        "Name",
        "ImageRecipeArn",
        "InfrastructureConfigurationArn"
      ]
    }
  ],
  "primaryIdentifier": [
    "/properties/Arn"
  ],
  "readOnlyProperties": [
    "/properties/Arn"
  ]
}
