Function: AWS EC2 Images Get By Filters

by Simon Sparks · 7 February 2026

To use this function add it to the class library file named OrchestratorPluginAWSService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: OrchestratorPluginAWSService.ts

Description: Orchestrator Function to Find an AWS EC2 Images by Filters

Public Function: EC2ImageGetByFilters

public EC2ImageGetByFilters(objAWSClient: AWSClient, strArchitecture: "i386" | "x86_64" | "arm64" | "x86_64_mac" | "arm64_mac" = "x86_64", strRootDeviceType: "ebs" | "instance-store" = "ebs", strImageType: "machine" | "kernel" | "ramdisk" = "machine", strPlatform: "Windows" | "Linux", strVirtualizationType: "paravirtual" | "hvm" = "paravirtual", strOwnerAlias: "amazon" | "aws-backup-vault" | "aws-marketplace" = "amazon", strHypervisor: "ovm" | "xen", strState: "available" | "pending" | "failed" = "available", arrOwnerId: string[], blnIncludeDeprecated: boolean = false): EC2Image[] {

    let arrEC2Filter: EC2Filter[] = [];

    if (strPlatform) {
        let objEC2Filter: EC2Filter = this.EC2FilterBuild("state", strState);

        arrEC2Filter.push(objEC2Filter);
    }

    if (strPlatform) {
        let objEC2Filter: EC2Filter = this.EC2FilterBuild("owner-alias", strOwnerAlias);

        arrEC2Filter.push(objEC2Filter);
    }

    if (strPlatform) {
        let objEC2Filter: EC2Filter = this.EC2FilterBuild("platform", strPlatform);

        arrEC2Filter.push(objEC2Filter);
    }

    if (strArchitecture) {
        let objEC2Filter: EC2Filter = this.EC2FilterBuild("architecture", strArchitecture);

        arrEC2Filter.push(objEC2Filter);
    }

    if (strRootDeviceType) {
        let objEC2Filter: EC2Filter = this.EC2FilterBuild("root-device-type", strRootDeviceType);

        arrEC2Filter.push(objEC2Filter);
    }

    if (strImageType) {
        let objEC2Filter: EC2Filter = this.EC2FilterBuild("image-type", strImageType);

        arrEC2Filter.push(objEC2Filter);
    }

    if (strVirtualizationType) {
        let objEC2Filter: EC2Filter = this.EC2FilterBuild("virtualization-type", strVirtualizationType);

        arrEC2Filter.push(objEC2Filter);
    }

    if (strHypervisor) {
        let objEC2Filter: EC2Filter = this.EC2FilterBuild("hypervisor", strHypervisor);

        arrEC2Filter.push(objEC2Filter);
    }

    let objAmazonEC2Client: AmazonEC2Client = objAWSClient.getAmazonEC2Client();

    let objEC2DescribeImagesRequest: EC2DescribeImagesRequest = new EC2DescribeImagesRequest();
    objEC2DescribeImagesRequest.setFilters(arrEC2Filter);
    objEC2DescribeImagesRequest.setIncludeDeprecated(blnIncludeDeprecated);
    if (arrOwnerId) {
        objEC2DescribeImagesRequest.setOwners(arrOwnerId);
    }

    let objEC2DescribeImagesResult: EC2DescribeImagesResult = objAmazonEC2Client.describeImages(objEC2DescribeImagesRequest);

    let arrEC2Image: EC2Image[] = objEC2DescribeImagesResult.getImages();

    return arrEC2Image;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like