{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-ec2-instance.json",
  "title": "AWSEC2InstanceProperties",
  "description": "Resource Type definition for AWS::EC2::Instance. Source:- No source definition found, add manually please",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-ec2-instance.json",
    "sourceSha256": "40c7f5e966f15b0a9a42d9d65b28c35aca1ae89f9ea0cb15fe762ecd3f1bbddb"
  },
  "type": "object",
  "properties": {
    "Tenancy": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SecurityGroups": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "type": "string"
      }
    },
    "PrivateIpAddress": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "UserData": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "BlockDeviceMappings": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/BlockDeviceMapping"
      }
    },
    "IamInstanceProfile": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "Ipv6Addresses": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/InstanceIpv6Address"
      }
    },
    "KernelId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SubnetId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "EbsOptimized": {
      "type": "boolean"
    },
    "PropagateTagsToVolumeOnCreation": {
      "type": "boolean"
    },
    "ElasticGpuSpecifications": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "$ref": "#/$defs/ElasticGpuSpecification"
      }
    },
    "ElasticInferenceAccelerators": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "$ref": "#/$defs/ElasticInferenceAccelerator"
      }
    },
    "Volumes": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/Volume"
      }
    },
    "Ipv6AddressCount": {
      "type": "integer"
    },
    "LaunchTemplate": {
      "$ref": "#/$defs/LaunchTemplateSpecification"
    },
    "EnclaveOptions": {
      "$ref": "#/$defs/EnclaveOptions"
    },
    "NetworkInterfaces": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/NetworkInterface"
      }
    },
    "ImageId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "InstanceType": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "Monitoring": {
      "type": "boolean"
    },
    "Tags": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/Tag"
      }
    },
    "AdditionalInfo": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "HibernationOptions": {
      "$ref": "#/$defs/HibernationOptions"
    },
    "LicenseSpecifications": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "$ref": "#/$defs/LicenseSpecification"
      }
    },
    "InstanceInitiatedShutdownBehavior": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "CpuOptions": {
      "$ref": "#/$defs/CpuOptions"
    },
    "AvailabilityZone": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "PrivateDnsNameOptions": {
      "$ref": "#/$defs/PrivateDnsNameOptions"
    },
    "HostId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "HostResourceGroupArn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SecurityGroupIds": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "type": "string"
      }
    },
    "DisableApiTermination": {
      "type": "boolean"
    },
    "KeyName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "RamdiskId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SourceDestCheck": {
      "type": "boolean"
    },
    "PlacementGroupName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SsmAssociations": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/SsmAssociation"
      }
    },
    "Affinity": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "CreditSpecification": {
      "$ref": "#/$defs/CreditSpecification"
    }
  },
  "typeName": "AWS::EC2::Instance",
  "readOnlyProperties": [
    "/properties/PublicIp",
    "/properties/Id",
    "/properties/PublicDnsName",
    "/properties/PrivateDnsName",
    "/properties/PrivateIp"
  ],
  "$defs": {
    "LaunchTemplateSpecification": {
      "type": "object",
      "title": "AWSEC2InstanceLaunchTemplateSpecificationDefinition",
      "properties": {
        "LaunchTemplateName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "LaunchTemplateId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Version": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Version"
      ],
      "additionalProperties": false
    },
    "HibernationOptions": {
      "type": "object",
      "title": "AWSEC2InstanceHibernationOptionsDefinition",
      "properties": {
        "Configured": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "LicenseSpecification": {
      "type": "object",
      "title": "AWSEC2InstanceLicenseSpecificationDefinition",
      "properties": {
        "LicenseConfigurationArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "LicenseConfigurationArn"
      ],
      "additionalProperties": false
    },
    "CpuOptions": {
      "type": "object",
      "title": "AWSEC2InstanceCpuOptionsDefinition",
      "properties": {
        "ThreadsPerCore": {
          "type": "integer"
        },
        "CoreCount": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    },
    "NoDevice": {
      "type": "object",
      "title": "AWSEC2InstanceNoDeviceDefinition",
      "additionalProperties": false
    },
    "InstanceIpv6Address": {
      "type": "object",
      "title": "AWSEC2InstanceInstanceIpv6AddressDefinition",
      "properties": {
        "Ipv6Address": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Ipv6Address"
      ],
      "additionalProperties": false
    },
    "NetworkInterface": {
      "type": "object",
      "title": "AWSEC2InstanceNetworkInterfaceDefinition",
      "properties": {
        "Description": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "PrivateIpAddress": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "PrivateIpAddresses": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/PrivateIpAddressSpecification"
          }
        },
        "SecondaryPrivateIpAddressCount": {
          "type": "integer"
        },
        "DeviceIndex": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "GroupSet": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "Ipv6Addresses": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/InstanceIpv6Address"
          }
        },
        "SubnetId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "AssociatePublicIpAddress": {
          "type": "boolean"
        },
        "NetworkInterfaceId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "AssociateCarrierIpAddress": {
          "type": "boolean"
        },
        "Ipv6AddressCount": {
          "type": "integer"
        },
        "DeleteOnTermination": {
          "type": "boolean"
        }
      },
      "required": [
        "DeviceIndex"
      ],
      "additionalProperties": false
    },
    "PrivateDnsNameOptions": {
      "type": "object",
      "title": "AWSEC2InstancePrivateDnsNameOptionsDefinition",
      "properties": {
        "HostnameType": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EnableResourceNameDnsAAAARecord": {
          "type": "boolean"
        },
        "EnableResourceNameDnsARecord": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ElasticGpuSpecification": {
      "type": "object",
      "title": "AWSEC2InstanceElasticGpuSpecificationDefinition",
      "properties": {
        "Type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Type"
      ],
      "additionalProperties": false
    },
    "ElasticInferenceAccelerator": {
      "type": "object",
      "title": "AWSEC2InstanceElasticInferenceAcceleratorDefinition",
      "properties": {
        "Type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Count": {
          "type": "integer"
        }
      },
      "required": [
        "Type"
      ],
      "additionalProperties": false
    },
    "SsmAssociation": {
      "type": "object",
      "title": "AWSEC2InstanceSsmAssociationDefinition",
      "properties": {
        "AssociationParameters": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/AssociationParameter"
          }
        },
        "DocumentName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "DocumentName"
      ],
      "additionalProperties": false
    },
    "AssociationParameter": {
      "type": "object",
      "title": "AWSEC2InstanceAssociationParameterDefinition",
      "properties": {
        "Value": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "Key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Value",
        "Key"
      ],
      "additionalProperties": false
    },
    "PrivateIpAddressSpecification": {
      "type": "object",
      "title": "AWSEC2InstancePrivateIpAddressSpecificationDefinition",
      "properties": {
        "PrivateIpAddress": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Primary": {
          "type": "boolean"
        }
      },
      "required": [
        "PrivateIpAddress",
        "Primary"
      ],
      "additionalProperties": false
    },
    "Volume": {
      "type": "object",
      "title": "AWSEC2InstanceVolumeDefinition",
      "properties": {
        "VolumeId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Device": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "VolumeId",
        "Device"
      ],
      "additionalProperties": false
    },
    "EnclaveOptions": {
      "type": "object",
      "title": "AWSEC2InstanceEnclaveOptionsDefinition",
      "properties": {
        "Enabled": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "Ebs": {
      "type": "object",
      "title": "AWSEC2InstanceEbsDefinition",
      "properties": {
        "SnapshotId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "VolumeType": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "KmsKeyId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Encrypted": {
          "type": "boolean"
        },
        "Iops": {
          "type": "integer"
        },
        "VolumeSize": {
          "type": "integer"
        },
        "DeleteOnTermination": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "BlockDeviceMapping": {
      "type": "object",
      "title": "AWSEC2InstanceBlockDeviceMappingDefinition",
      "properties": {
        "NoDevice": {
          "$ref": "#/$defs/NoDevice"
        },
        "VirtualName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Ebs": {
          "$ref": "#/$defs/Ebs"
        },
        "DeviceName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "DeviceName"
      ],
      "additionalProperties": false
    },
    "Tag": {
      "type": "object",
      "title": "AWSEC2InstanceTagDefinition",
      "properties": {
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Value",
        "Key"
      ],
      "additionalProperties": false
    },
    "CreditSpecification": {
      "type": "object",
      "title": "AWSEC2InstanceCreditSpecificationDefinition",
      "properties": {
        "CPUCredits": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "primaryIdentifier": [
    "/properties/Id"
  ],
  "additionalProperties": false,
  "createOnlyProperties": [
    "/properties/ElasticGpuSpecifications",
    "/properties/Ipv6Addresses",
    "/properties/PlacementGroupName",
    "/properties/HostResourceGroupArn",
    "/properties/ImageId",
    "/properties/CpuOptions",
    "/properties/PrivateIpAddress",
    "/properties/ElasticInferenceAccelerators",
    "/properties/EnclaveOptions",
    "/properties/HibernationOptions",
    "/properties/KeyName",
    "/properties/LicenseSpecifications",
    "/properties/NetworkInterfaces",
    "/properties/AvailabilityZone",
    "/properties/SubnetId",
    "/properties/LaunchTemplate",
    "/properties/SecurityGroups",
    "/properties/Ipv6AddressCount"
  ]
}
