{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-imagebuilder-distributionconfiguration.json",
  "title": "AWSImageBuilderDistributionConfigurationProperties",
  "description": "Resource schema for AWS::ImageBuilder::DistributionConfiguration. 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-distributionconfiguration.json",
    "sourceSha256": "4354861f16e086e2efbf9842b77e3163fb09624c5b20542b369d11bf805294f8"
  },
  "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 distribution configuration."
    },
    "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 distribution configuration."
    },
    "Distributions": {
      "description": "The distributions of the distribution configuration.",
      "type": "array",
      "insertionOrder": true,
      "items": {
        "$ref": "#/$defs/Distribution"
      }
    },
    "Tags": {
      "description": "The tags associated with the component.",
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        ".{1,}": {
          "type": "string"
        }
      }
    }
  },
  "typeName": "AWS::ImageBuilder::DistributionConfiguration",
  "tagging": {
    "taggable": false
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git",
  "createOnlyProperties": [
    "/properties/Name"
  ],
  "additionalProperties": false,
  "$defs": {
    "Distribution": {
      "description": "The distributions of the distribution configuration.",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationDistributionDefinition",
      "properties": {
        "Region": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "region"
        },
        "AmiDistributionConfiguration": {
          "$ref": "#/$defs/AmiDistributionConfiguration"
        },
        "ContainerDistributionConfiguration": {
          "$ref": "#/$defs/ContainerDistributionConfiguration"
        },
        "LicenseConfigurationArns": {
          "description": "The License Manager Configuration to associate with the AMI in the specified Region.",
          "type": "array",
          "insertionOrder": true,
          "items": {
            "$ref": "#/$defs/LicenseConfigurationArn"
          }
        },
        "LaunchTemplateConfigurations": {
          "description": "A group of launchTemplateConfiguration settings that apply to image distribution.",
          "type": "array",
          "insertionOrder": true,
          "items": {
            "$ref": "#/$defs/LaunchTemplateConfiguration"
          }
        },
        "FastLaunchConfigurations": {
          "description": "The Windows faster-launching configurations to use for AMI distribution.",
          "type": "array",
          "insertionOrder": true,
          "items": {
            "$ref": "#/$defs/FastLaunchConfiguration"
          }
        }
      },
      "required": [
        "Region"
      ],
      "additionalProperties": false
    },
    "AmiDistributionConfiguration": {
      "description": "The specific AMI settings (for example, launch permissions, AMI tags).",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationAmiDistributionConfigurationDefinition",
      "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 AMI distribution configuration."
        },
        "KmsKeyId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The KMS key identifier used to encrypt the distributed image."
        },
        "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 AMI distribution configuration."
        },
        "AmiTags": {
          "description": "The tags to apply to AMIs distributed to this Region.",
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            ".{1,}": {
              "type": "string"
            }
          }
        },
        "TargetAccountIds": {
          "description": "The ID of accounts to which you want to distribute an image.",
          "type": "array",
          "insertionOrder": true,
          "items": {
            "type": "string"
          }
        },
        "LaunchPermissionConfiguration": {
          "$ref": "#/$defs/LaunchPermissionConfiguration"
        }
      },
      "additionalProperties": false
    },
    "ContainerDistributionConfiguration": {
      "description": "Container distribution settings for encryption, licensing, and sharing in a specific Region.",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationContainerDistributionConfigurationDefinition",
      "properties": {
        "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 container distribution configuration."
        },
        "ContainerTags": {
          "description": "Tags that are attached to the container distribution configuration.",
          "type": "array",
          "insertionOrder": true,
          "items": {
            "type": "string"
          }
        },
        "TargetRepository": {
          "description": "The destination repository for the container distribution configuration.",
          "$ref": "#/$defs/TargetContainerRepository"
        }
      },
      "additionalProperties": false
    },
    "LaunchTemplateConfiguration": {
      "description": "launchTemplateConfiguration settings that apply to image distribution.",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationLaunchTemplateConfigurationDefinition",
      "properties": {
        "LaunchTemplateId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Identifies the EC2 launch template to use."
        },
        "AccountId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The account ID that this configuration applies to."
        },
        "SetDefaultVersion": {
          "description": "Set the specified EC2 launch template as the default launch template for the specified account.",
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "FastLaunchConfiguration": {
      "description": "The Windows faster-launching configuration to use for AMI distribution.",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationFastLaunchConfigurationDefinition",
      "properties": {
        "AccountId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The owner account ID for the fast-launch enabled Windows AMI."
        },
        "Enabled": {
          "description": "A Boolean that represents the current state of faster launching for the Windows AMI. Set to true to start using Windows faster launching, or false to stop using it.",
          "type": "boolean"
        },
        "LaunchTemplate": {
          "description": "The launch template that the fast-launch enabled Windows AMI uses when it launches Windows instances to create pre-provisioned snapshots.",
          "$ref": "#/$defs/FastLaunchLaunchTemplateSpecification"
        },
        "MaxParallelLaunches": {
          "description": "The maximum number of parallel instances that are launched for creating resources.",
          "type": "integer"
        },
        "SnapshotConfiguration": {
          "description": "Configuration settings for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled.",
          "$ref": "#/$defs/FastLaunchSnapshotConfiguration"
        }
      },
      "additionalProperties": false
    },
    "LaunchPermissionConfiguration": {
      "description": "Launch permissions can be used to configure which AWS accounts can use the AMI to launch instances.",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationLaunchPermissionConfigurationDefinition",
      "properties": {
        "UserIds": {
          "description": "The AWS account ID.",
          "type": "array",
          "insertionOrder": false,
          "items": {
            "type": "string"
          }
        },
        "UserGroups": {
          "description": "The name of the group.",
          "type": "array",
          "insertionOrder": false,
          "items": {
            "type": "string"
          }
        },
        "OrganizationArns": {
          "description": "The ARN for an Amazon Web Services Organization that you want to share your AMI with.",
          "type": "array",
          "insertionOrder": false,
          "items": {
            "type": "string"
          }
        },
        "OrganizationalUnitArns": {
          "description": "The ARN for an Organizations organizational unit (OU) that you want to share your AMI with.",
          "type": "array",
          "insertionOrder": false,
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "LicenseConfigurationArn": {
      "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 License Manager configuration.",
      "title": "AWSImageBuilderDistributionConfigurationLicenseConfigurationArnDefinition"
    },
    "TargetContainerRepository": {
      "description": "The destination repository for the container image.",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationTargetContainerRepositoryDefinition",
      "properties": {
        "Service": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "ECR"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The service of target container repository."
        },
        "RepositoryName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The repository name of target container repository."
        }
      },
      "additionalProperties": false
    },
    "FastLaunchLaunchTemplateSpecification": {
      "description": "The launch template that the fast-launch enabled Windows AMI uses when it launches Windows instances to create pre-provisioned snapshots.",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationFastLaunchLaunchTemplateSpecificationDefinition",
      "properties": {
        "LaunchTemplateId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The ID of the launch template to use for faster launching for a Windows AMI."
        },
        "LaunchTemplateName": {
          "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 launch template to use for faster launching for a Windows AMI."
        },
        "LaunchTemplateVersion": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The version of the launch template to use for faster launching for a Windows AMI."
        }
      },
      "additionalProperties": false
    },
    "FastLaunchSnapshotConfiguration": {
      "description": "Configuration settings for managing the number of snapshots that are created from pre-provisioned instances for the Windows AMI when faster launching is enabled.",
      "type": "object",
      "title": "AWSImageBuilderDistributionConfigurationFastLaunchSnapshotConfigurationDefinition",
      "properties": {
        "TargetResourceCount": {
          "description": "The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI.",
          "type": "integer"
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "Name",
    "Distributions"
  ],
  "primaryIdentifier": [
    "/properties/Arn"
  ],
  "readOnlyProperties": [
    "/properties/Arn"
  ]
}
