pragma solidity ^0.8.9;
// This is a Solidity smart contract that demonstrates the use of an enumeration (enum) called VMStatus.
contract EnumExample {
// Enum definition for different VM (Virtual Machine) statuses.
enum VMStatus {
CREATED, // The VM has been created but not approved.
APPROVED, // The VM has been approved for provisioning.
PROVISIONED, // The VM has been provisioned and is ready for use.
REJECTED, // The VM request has been rejected.
DELETED // The VM has been deleted.
}
// The current status of the Virtual Machine.
VMStatus status;
// Default status choice when no specific choice is set.
VMStatus defaultChoice = VMStatus.REJECTED;
// Function to set the status to CREATED.
function setCreated() public {
status = VMStatus.CREATED;
}
// Function to set the status to APPROVED.
function setApproved() public {
status = VMStatus.APPROVED;
}
// Function to set the status to PROVISIONED.
function setProvisioned() public {
status = VMStatus.PROVISIONED;
}
// Function to set the status to REJECTED.
function setRejected() public {
status = VMStatus.REJECTED;
}
// Function to set the status to DELETED.
function setDeleted() public {
status = VMStatus.DELETED;
}
// Function to retrieve the current VM status.
function getChoice() public view returns (VMStatus) {
return status;
}
// Function to retrieve the default VM status as an integer representation.
function getDefaultChoice() public view returns (uint) {
return uint(defaultChoice);
}
}
//Deploy screenshot show: