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.
